【发布时间】:2010-12-10 02:57:53
【问题描述】:
我无法使用LoadLibrary() API 加载我的 test.dll(在 VC++ - MFC 中)。我得到错误代码126 (Module not found)使用GetLastError()。
通过依赖walker,我知道我的test.dll 依赖于“xerces-c_2_7.dll”和“Xalan-C_1_10.dll”。这些 dll 已经存在于与 exe 相同的路径上。
我仍然收到错误消息。
所以我尝试使用LoadLibrary() 加载上述两个第三方dll,返回句柄为0x10000000。 GetLastError()我收到了
error code 6 (Invalid Handle).
谁能指导我为什么会收到 Invalid Handle 错误?
以下是代码片段:
HINSTANCE hLib = LoadLibrary(_T("Xalan-C_1_10"));
TCHAR szMessage[MAX_PATH];
FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
szMessage, MAX_PATH, NULL);
hLib = LoadLibrary(_T("xerces-c_2_7"));
FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS|
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
szMessage, MAX_PATH, NULL);
【问题讨论】:
-
我不明白这个问题。根据 MSDN,任何非空返回值都表示成功,0x10000000 是非空的。
-
@erikkallen:IIUC,OP 能够单独加载 Xerces 和 Xalan,但不能单独加载
test.dll。
标签: mfc visual-c++ loadlibrary