我建立了一个导出类的DLL,现在我想动态载入DLL,那么怎么和这个导出类的DLL建立连接呢? 如果是导出函数,载入函数地址就可以了.但导出类总不能导出类的地址吧? 高手帮帮我.
解决方案 »
- windows程序如何调试的问题
- 为什么用ADO写入Access中的备注字段写不进去
- CArray在哪个头文件中,怎么提示没有定义啊??
- 关于IPX
- 我在做OPCserver的通信程序,要用到OPC.h和opc_i.c文件请问在那里可以得到谢谢!!
- 共享和求助并行:~!!!!
- 用mfc创建窗口(dialog1),由dialog1调用dialog2,dialog2最小化时没有显示在任务栏,怎么回事呀,求解。
- 我要在程序中加入一外部文件,如何实现?
- 协议驱动里绑定的问题。为什么不执行绑定???
- VS2015 MFC环境下,属性页对话框CPropertyPage调用非模态对话框出现重影,请问怎么解决?
- 一个项目!给建议,就给分!!!?
- 在win2000下 怎么使edit透明
只不过你必须在你的工程中包含你得到处类的头文件!还应包括你在客户端调用到的资源的id!
在project--->setting-->link指明你的dll的连接库的yourdll.lib的位置而已!
在你的程序中必须包含导出类的头文件。
在DLL里面建立一个一个类
提供一个导出函数
比如CreateObject,在这个函数里面创建一个类的对象,返回给应用程序就行了
:)
连接!!!!!!!!!!!!!
连接!!!!!!!!!!!!!
连接!!!!!!!!!!!!!
我不要LIB库.
extern "C" __declspec(dllexport) void __stdcall NewObj(void** ppObj);
void __stdcall NewObj(void** ppObj)
{
CDLLClass* pObj=new CDLLClass();
*ppObj=pObj;
}client中:typedef void __declspec(dllimport) MyDLLClass(void **);
MyDLLClass *Load1; CDLLClass* pDLLClass;
HINSTANCE Dll = LoadLibrary("yourdll");
if (Dll)
{
// Get the address of the function.
Load1 = (MyDLLClass *)GetProcAddress(Dll, "NewObj");
// Make sure we have the address then call the function.
if (Load1)
Load1((void**)&pDLLClass);
else
ShowMessage(SysErrorMessage(GetLastError())); // After we're done with the Dll we have to free it.
//FreeLibrary(Dll);
}
现在你可以取得指向该类的指针pDLLClass.