首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教使用LoadLibrary()怎么使用DLL中的导出类

2013-12-20 
请问使用LoadLibrary()如何使用DLL中的导出类?原本使用LoadLibrary()是不需要包含该dll的任何头文件的,只

请问使用LoadLibrary()如何使用DLL中的导出类?
原本使用LoadLibrary()是不需要包含该dll的任何头文件的,只是通过GetProcAddress()获取函数地址,
但是如何使用DLL中的类呢? 难道要包含DLL的头文件? 


// 假如这就是dll中的一个类
class __declspec(dllexport) IEvent
{
public:
virtual ~IEvent() {}

public:
virtual BOOLFire(BYTE* pContext, int nLen, WORD wEventID, DWORD dwSrcPointer) { ... }
};

[解决办法]
不要  包含函数指针头文件就ok (强制转化函数类型)GetProcAddress
[解决办法]
你需要在dll中导出一个C类型的函数
LoadLibrary()找出这个函数,用一个函数指针接收这个变量然后使用。
引用:
原本使用LoadLibrary()是不需要包含该dll的任何头文件的,只是通过GetProcAddress()获取函数地址,
但是如何使用DLL中的类呢? 难道要包含DLL的头文件? 


// 假如这就是dll中的一个类
class __declspec(dllexport) IEvent
{
public:
virtual ~IEvent() {}

public:
virtual BOOLFire(BYTE* pContext, int nLen, WORD wEventID, DWORD dwSrcPointer) { ... }
};

你在这里导出的是类,那你只能使用这个类型,而使用这个类型又必须包含头文件
[解决办法]
导出类不能使用 loadlibray 使用
涉及到类的, 跟编译器绑定了, 甚至 debug/release 都绑定了.

想都不要想, 用头文件/库文件.

热点排行