#pragma once #include #include using namespace std; // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DEVTREE_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // DEVTREE_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifdef DEVTREE_EXPORTS #define DEVTREE_API __declspec(dllexport) #define DEVTREE_C_API extern "C" __declspec(dllexport) #else #define DEVTREE_API __declspec(dllimport) #define DEVTREE_C_API extern "C" __declspec(dllimport) #endif #ifndef DEVTREE_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DevTreeX64D.lib") #else #pragma comment(lib, "DevTreeX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DevTreeD.lib") #else #pragma comment(lib, "DevTree.lib") #endif #endif #endif typedef enum _Dev_Tree_Type { TYPE_DEVICE, TYPE_DRIVER, //TYPE_TREE,//不要树状递归,只要数组 TYPE_MAX }DEV_TREE_TYPE; class DEVTREE_API DevTreeNode { public: DevTreeNode(); ~DevTreeNode(); DEV_TREE_TYPE m_NodeType;//0:Device,1:devTree PVOID m_pObject;//0:Device,1:devTree }; // 此类是从 DevTree.dll 导出的 class DEVTREE_API DevTree { string *m_pName; vector *m_pDevices; public: DevTree(void); virtual ~DevTree(void); // TODO: 在此添加您的方法。 void SetName(const char *pszName); const char *GetName(); void Add(PVOID dev, DEV_TREE_TYPE devType);//0:Device,1:devTree size_t size(); void clear(); DevTreeNode &operator [](size_t idx); }; //DevTree* MallocDevTree(); //void FreeDevTree(DevTree* p);