当前位置: 代码迷 >> WinCE >> 动态库无法加载 errorcode =87 何解?该怎么解决
  详细解决方案

动态库无法加载 errorcode =87 何解?该怎么解决

热度:468   发布时间:2016-04-28 13:18:22.0
动态库无法加载 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");一句看出 该动态库的目录就是当前的带绝对路劲的目录,
不存在目录错误。
会不会是动态库要放在别的目录下?请大仙指点迷津,谢谢!

------解决方案--------------------
C/C++ code
[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的例子:
C/C++ code
    HINSTANCE hD3GApi = NULL;    // 加载D3GApi.dll    hD3GApi = LoadLibrary(L"D3GApi.dll");    if(hD3GApi == NULL){        MessageBox(_T("加载D3GApi.dll失败"));        return;    }
------解决方案--------------------
可能是你D3GApi本身缺少依赖库不能加载,用eXeScope看看D3GApi.dll的依赖库哪些。
  相关解决方案