MFC 关于动态库DLL引用CDialog的关键点

,在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() 允许应用程序作为控件容器来使用。

 

目前遇到的问题,基本为以上两点,以后有新的发现会继续补充

你可能感兴趣的:(dialog)