问题:ResourceHandle默认的是InstanceHandle,所以使用Dll中的资源会失败。
解决:将ResourceHandle切换至动态库的实例句柄,使用资源完毕之后切换回当前实例句柄。
//从exe切换到dll,然后从dll切换到exe
HINSTANCE hExe = AfxGetResourceHandle();
HINSTANCE hDll = AfxGetInstanceHandle();
hDll = ::GetModuleHandleA("Toolkit.dll");
AfxSetResourceHandle(hDll);
CHelloDlg dlg;//对话框的资源位于动态库;
dlg.DoModal();//但加载资源时默认的是运行实例;
AfxSetResourceHandle(hExe);//所以要进行切换