smartDMer 2015-06-03 09:27 采纳率: 0%
浏览 2140

LoadLibraryEx GetLastError

咨询个问题:
VS2010中LoadLibraryEx返回的HINSTALLCE正确,并且能执行dll中的接口函数,
dll文件路径是正确的,但是执行LoadLibraryEx后,
为什么GetLastError()会返回错误码2,即ERROR_FILE_NOT_FOUND,
_这个Agent.dll之前是vs2008生成的,现在项目移到vs2010中

TCHAR dll[] = _T("D:\\Project\\trunk\\build\bin\\Debug\\Agent.dll");
int error 1= GetLastError();//error=0
HINSTANCE hLib = LoadLibraryEx(dll, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
int error2 = GetLastError();//error=2???
if (hLib>=(HINSTANCE)HINSTANCE_ERROR)
{
typedef HRESULT (_stdcall *EntryFunc)();
EntryFunc lpDllEntryPoint=NULL;
if(isReg)
{
lpDllEntryPoint = (EntryFunc)GetProcAddress(hLib, "DllRegisterServer");
}
else
{
lpDllEntryPoint = (EntryFunc)GetProcAddress(hLib, "DllUnregisterServer");
}
if(lpDllEntryPoint)
{
if(SUCCEEDED((*lpDllEntryPoint)()))
{
BOOL isOK=TRUE;//能够执行到这里来,loadlibraryEx应该成功了
}
}
FreeLibrary(hLib);
}

  • 写回答

7条回答 默认 最新

  • bdmh 优质创作者: 移动开发技术领域 2015-06-03 09:30
    关注

    ERROR_FILE_NOT_FOUND,文件未找到,dll位置在哪

    评论

报告相同问题?