//这是MFC DLL中的自己写入的代码用于加载位图
HBITMAP _stdcall GetBitmapFromDll()
{
HBITMAP bit=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));
if(bit!=NULL)
return bit;
else
{
int a=GetLastError();
char buf[100]={0};
sprintf(buf,"%d",a);
MessageBoxA(NULL,buf,0,0);
return NULL;
}
}


//这是客户端的调用代码,需要注意的是关于m_pic的picture控件的ID值,要自己转换一下,不能使用默认值 HINSTANCE hInst=::LoadLibraryW(L"D:\\project\\Skin\\Debug\\Skin.dll"); typedef HBITMAP (_stdcall *test)(void); if(NULL==hInst) { MessageBox(L"加载动态链接库失败",0,0); return; } test hehe=NULL; hehe=(test)GetProcAddress(hInst,"GetBitmapFromDll"); if(NULL==hehe) { MessageBox(L"对不起,函数地址获取失败",0,0); return ; } HBITMAP bit=hehe(); m_pic.SetBitmap(bit); FreeLibrary(hInst);


这样的返回值是1813只需修改MFC DLL中的代码即可

HBITMAP _stdcall GetBitmapFromDll()
{
HBITMAP bit=LoadBitmap(GetModuleHandle(L"Skin"/*工程名即可*/),MAKEINTRESOURCE(IDB_BITMAP1));
if(bit!=NULL)
return bit;
else
{
int a=GetLastError();
char buf[100]={0};
sprintf(buf,"%d",a);
MessageBoxA(NULL,buf,0,0);
return NULL;
}
}