// 假如这就是dll中的一个类 class __declspec(dllexport) IEvent { public: virtual ~IEvent() {} public: virtual BOOL Fire(BYTE* pContext, int nLen, WORD wEventID, DWORD dwSrcPointer) { ... } };
你需要在dll中导出一个C类型的函数 LoadLibrary()找出这个函数,用一个函数指针接收这个变量然后使用。 [quote=引用 楼主 weiwuyuan 的回复:] 原本使用LoadLibrary()是不需要包含该dll的任何头文件的,只是通过GetProcAddress()获取函数地址, 但是如何使用DLL中的类呢? 难道要包含DLL的头文件? // 假如这就是dll中的一个类 class __declspec(dllexport) IEvent { public: virtual ~IEvent() {} public: virtual BOOL Fire(BYTE* pContext, int nLen, WORD wEventID, DWORD dwSrcPointer) { ... } };
原本使用LoadLibrary()是不需要包含该dll的任何头文件的,只是通过GetProcAddress()获取函数地址, 但是如何使用DLL中的类呢? 难道要包含DLL的头文件? // 假如这就是dll中的一个类 class __declspec(dllexport) IEvent { public: virtual ~IEvent() {} public: virtual BOOL Fire(BYTE* pContext, int nLen, WORD wEventID, DWORD dwSrcPointer) { ... } };
导出类不能使用 loadlibray 使用 涉及到类的, 跟编译器绑定了, 甚至 debug/release 都绑定了. 想都不要想, 用头文件/库文件.
64,676
社区成员
250,490
社区内容
加载中
试试用AI创作助手写篇文章吧