动态库无法加载 errorcode =87 何解?
小弟在wince4.1下想加载动态库,就是一直加载不进去,一直报错87,
请问大仙应该怎么解决,我的动态库是在当前目录下。
代码如下:
MessageBox(CurrentDir + "\\irk.dll");
DllLib = ::LoadLibrary(CurrentDir + "\\irk.dll");
if(DllLib == NULL)
{
MessageBox(_T("error"));
DWORD ERR = GetLastError();
CString FF;
FF.Format(L"Error Code = %d",ERR);
AfxMessageBox(FF);
}
else
{
MessageBox(_T("pass"));
}
说明:从MessageBox(CurrentDir + "\\irk.dll");一句看出 该动态库的目录就是当前的带绝对路劲的目录,
不存在目录错误。
会不会是动态库要放在别的目录下?请大仙指点迷津,谢谢!
[解决办法]
[color=#0000FF]//// MessageId: ERROR_INVALID_PARAMETER//// MessageText://// The parameter is incorrect.//#define ERROR_INVALID_PARAMETER 87L // dderror[/color]
[解决办法]
加载失败有很多原因。如:
1、路径名称不正确,一般可以用TEXT("xxx.dll")或L"xxx.dll"的方式
2、被加载的dll有问题
3、系统没有添加MFC的支持,在加载MFC引用或dll时候就会出错
4、加载方式有误
[解决办法]
给你一个可以正常加载dll的例子:
HINSTANCE hD3GApi = NULL; // 加载D3GApi.dll hD3GApi = LoadLibrary(L"D3GApi.dll"); if(hD3GApi == NULL){ MessageBox(_T("加载D3GApi.dll失败")); return; }
[解决办法]
可能是你D3GApi本身缺少依赖库不能加载,用eXeScope看看D3GApi.dll的依赖库哪些。