,在MFC的应用开发中,经常会遇到将部分功能以DLL动态库的方式进行封装调用,在调用的过程中应注意以下几点
1 设置当前资源句柄
在DLL中查找资源文件时,如需要将当前资源文件的handle设置成dll模块的hinstance.
AfxGetResourceHandle() 查看当前资源句柄
AfxSetResourceHandle() 设置当前资源句柄
GetModuleHandle(“dll文件名”);
例示:
HINSTANCE h1 = AfxGetResourceHandle();
HMODULE hMod = GetModuleHandleA("activex.ocx");
if (hMod == NULL) hMod=GetModuleHandleA("activex.dll");
AfxSetResourceHandle(hMod);
2 在dll中调用activex时,需要进行com初始化与容器设置
OleInitialize(NULL); COM接口初始化
AfxEnableControlContainer() 允许应用程序作为控件容器来使用。
目前遇到的问题,基本为以上两点,以后有新的发现会继续补充
MFC 关于动态库DLL引用CDialog的关键点
时间: 2024-10-26 01:32:44