小弟在动态导入dll时碰到了困难,求高手帮助。我先用Wizard建了一个简单的win32的dll,里面什么函数都没加,然后编译生成dll.然后,在另一个应用程序中用LoadLibrary("dll的绝对路径")来载入这个dll。结果函数调用失败,返回的句柄为0x100000,GetLastError()中返回的是“无效句柄”的错误。后来我又用向导另建了几个dll,结果返回的句柄也是0x100000,但GetLastError()却显示函数调用成功。不知道又谁碰到过同样的问题?
调试欢乐多
除非一种情况就是你的这个地址,已经被你的应用程序的其他DLL占用了
注意这个 win32 标准DLL最好只依赖系统的.dll,总这注意它的依赖性。
结果iErr 值为6(无效句柄)。
不知道是什么原因。
然后再调用LoadLibrary()
然后GetLastError
你的错误可能是LoadLibrary前面引起的
LoadLibrary()只要路径对了就不会错吧!
你判断一下返回的是不是NULL
不然在dll里面写个函数导出,看可以调用不
然后再调用LoadLibrary()
然后GetLastError
你的错误可能是LoadLibrary前面引起的
up!应该是前面影起的!你怎么判断就是LoadLibrary()的error呢?
SetLastError(0);
hinstDll = LoadLibrary("F:\\dd\\hookdll\\Debug\\hookdll.dll"); //返回的值为0x100000
vv = GetLastError(); //这里返回的是6(无效句柄)
hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDll,"MyHOOKPROC"); //MyHookPROC是我在dll中定义的一个函数
DWORD v = GetLastError(); //这里返回的是127(无效的Proc)有哪位大哥能提供一个正确的LoadLibrary的写法和相应的dll?再加50分相送。
LoadLibraryReturn Values
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL.