首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-03-09 
动态库无法加载 errorcode 87 何解?小弟在wince4.1下想加载动态库,就是一直加载不进去,一直报错87,请问大

动态库无法加载 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的依赖库哪些。

热点排行