我在dll 建立了一个dialog的派生类mydlg,里面有个dialog的资源。然后在其他应用程序里调用这个dll里的mydlg.DoModal()行吗??我试了好像有问题.还有,我在dll里建立了一写资源,如bitmap,然后再其他应用程序里调用这个dll的资源也不行,应该怎么弄? CBitmap cbmp;
BITMAP bmp;
cbmp.LoadBitmap(BITMAP_IN_DLL);
cbmp.GetBitmap(&bmp);//这里就报错了,我loadbitmap其他资源没问题.是我什么地方错了还是不能在dll里包含资源??
先回去了,每天上午来看。
BITMAP bmp;
cbmp.LoadBitmap(BITMAP_IN_DLL);
cbmp.GetBitmap(&bmp);//这里就报错了,我loadbitmap其他资源没问题.是我什么地方错了还是不能在dll里包含资源??
先回去了,每天上午来看。
HMODULE hModoule=LoadLibrary(_T("D:\\Documents\\Visual Studio 2005\\Projects\\ToolBarEx\\debug\\Res.dll"));
// Find the resource handle.
BITMAP bmp;
CBitmap cbmp;
HBITMAP hBmp=LoadBitmap(hModoule,MAKEINTRESOURCE(101));
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
cbmp.Attach(hBmp);
cbmp.GetBitmap(&bmp);
//dcMem.CreateCompatibleDC(&dc);
CBitmap* pOldBmp=dcMem.SelectObject(&cbmp);
dc.BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(pOldBmp);
dcMem.DeleteDC();
FreeLibrary(hModoule);
其实我的问题就是GuiToolKit静态编译的时候资源用不上的问题,动态dll的时候可以用,大家有遇到类似的问题吗
首先解决编译问题:
见 http://topic.csdn.net/t/20050906/17/4253280.html只有有了exe,如果运行报错,应该是资源问题,仔细看guilib里面只有3张bitmap,把这3个bitmap添加到自己的工程里面,记得图片的id要跟guilib里的一致,放到resource.h里面,再重新编译,成功!#define IDB_GUI_MDIICONS 18040
#define IDB_GUI_DOCKBAR 18041
#define IDB_GUI_DOCKBAROFFICE 18042也就是拷到resource.h