1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #pragma once
- #include <string>
- #include <vector>
- 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<DevTreeNode> *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);
|