咨询个问题:
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);
}