为什么找不到DLL?
用VS2005创建了智能设备DLL,生成之后用loadlibrary调用,返回非法句柄
用loadlibraryex调用,说找不到文件,可是文件明明就在那阿~
请问是怎么回事?难道我的DLL有问题?
问题点数:20、回复次数:5Top
1 楼cuterain(eM魔鬼)回复于 2006-06-03 22:55:01 得分 0
把你的代码帖出来看看,你使用全路径看看。
Top
2 楼HelloHalo(HelloHalo)回复于 2006-06-04 17:03:24 得分 0
用LoadLibrary()加载DLL,有返回值,在CSDN里看到说如果有返回值就不用管GetLastError的error了,所以我也没管,但是unused是负的
hDLL = 0x8da7fb74 {unused=-1918370956}
这个值正常不?
而且在创建菜单栏的时候出问题
SHMENUBARINFO mbi;
memset(&mbi, 0, sizeof(SHMENUBARINFO));
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = hMainWindow;//这个没错
mbi.nToolBarId = IDR_MENU;//DLL里的菜单资源
mbi.hInstRes =hSatDLL;//我用LoadLibrary加载的DLL
if (!SHCreateMenuBar(&mbi))
{
error=GetLastError();
g_hWndMenuBar = NULL;
}
else
{
g_hWndMenuBar = mbi.hwndMB;
}
总是无法创建菜单。但如果用应用程序实例句柄代替hSatDLL 就可以生成菜单
清高人指点,谢谢!
Top
3 楼HelloHalo(HelloHalo)回复于 2006-06-04 17:10:24 得分 0
路径是绝对路径,
hNewMenu=LoadMenu(...);//有返回值,NO error,说明加载了DLL里的菜单
然后Destroy掉原有Commandbar,创建一个空白Commandbar g_hWndMenuBar之后
CommandBar_InsertMenubarEx(g_hWndMenuBar,NULL,(LPTSTR)hNewMenu,0);//OK
CommandBar_DrawMenuBar(g_hWndMenuBar,0);
error=GetLastError();
就出错,代码1404,invalid menu handle;
我就不明白,我load的时候怎么不说invalid呢?
这时显示的仍然是空白的commandbar
Top
4 楼northeaster(快乐编程(对日货没有兴趣))回复于 2006-06-05 19:14:12 得分 0
看看你的工程属性中的部署路径,很有可能是那里的问题。Top
5 楼nanfeng231(木木)回复于 2006-06-06 16:25:29 得分 0
数字签名Top




