m_hTest=AfxLoadLibrary("C:\\test\\test.dll");
if(m_hLang==NULL)
AfxMessageBox("NULL");
一切正常。
但是程序和另一个LIB连接的话,AfxLoadLibrary就返回NULL了,这是为何?其中test.dll是资源DLL,已设置\NOENTRY Project Option。请注意如果我不去连接另一个LIB就没问题:(
if(m_hLang==NULL)
AfxMessageBox("NULL");
一切正常。
但是程序和另一个LIB连接的话,AfxLoadLibrary就返回NULL了,这是为何?其中test.dll是资源DLL,已设置\NOENTRY Project Option。请注意如果我不去连接另一个LIB就没问题:(
m_hTest与m_hLang什么关系?
test.dll是纯资源的DLL,没有DLLMAIN。
因为程序静态link了另一个LIB,执行这句m_hTest=AfxLoadLibrary("C:\\test\\test.dll");后m_hTest就==NULL,如果不静态连接那个LIB,就没问题。
2。GetLastError(),看返回什么错
3。用::LoadLibrary()看是否行
test.dll可能调用了其它DLL, 而你又没有提供.
另一个LIB是在stdafx.h中连接的:
//stdafx.h
....
#pragma comment(lib, "another.lib")
比如
C:\App Path\program.exe
C:\App Path\A.dll
C:\App Path\Dll Path\B.Dll好像LoadLibrary有什么参数,不加.dll扩展名,直接改注册表%System什么的。
你只有把他们放在当前路径下.或者统统丢到SYSTEM32下.这样肯定能找到.
如果是静态的话,到那找dll只有windows说了算了。