现在有一个动态库a.dll,希望把它封装到b.dll中。采用做法如下:
建立win32 dll,加入一个资源文件,然后建立一个“DLL”类型,再选择import导入a.dll。设置string value。使用方法如下:
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(hDll);
CString Type="DLL";
hSrc = ::FindResource(hDll, MAKEINTRESOURCE(IDR_FLASH), Type);
HGLOBAL gl= ::LoadResource (hDll,hSrc);
if (gl == NULL)
{
AfxMessageBox("无法加载dll");
}
。
结果gl总是为NULL,动态库中的建立应该没有问题,因为我试过如果采用相同方法在a.dll中封装位图,没有一点问题。但是封装动态库的时候就不行了。
不知道是不是还有什么其它设置?
请大家指教
建立win32 dll,加入一个资源文件,然后建立一个“DLL”类型,再选择import导入a.dll。设置string value。使用方法如下:
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(hDll);
CString Type="DLL";
hSrc = ::FindResource(hDll, MAKEINTRESOURCE(IDR_FLASH), Type);
HGLOBAL gl= ::LoadResource (hDll,hSrc);
if (gl == NULL)
{
AfxMessageBox("无法加载dll");
}
。
结果gl总是为NULL,动态库中的建立应该没有问题,因为我试过如果采用相同方法在a.dll中封装位图,没有一点问题。但是封装动态库的时候就不行了。
不知道是不是还有什么其它设置?
请大家指教
很奇怪,如果调用位图资源就可以成功,但是调用动态库资源就不行。
难道是建立win32 dll的时候要作一些什么处理吗?
GetLastError看看错误值是啥是不是你的Type类型的问题,或者hDLL有问题。
ERROR_RESOURCE_NAME_NOT_FOUND
The specified resource name cannot be found in the image file.
没有找到资源,但是为什么封装位图就可以,封装dll就出现这个问题?
我换了type类型也不行,hDll没有问题,已经检验过了。
主要是怕别人看到了不好,呵呵