winapi - 如何在 C++ 中从 .dll 中导入和导出 HINSTANCE?
问题描述
我正在尝试获取HINSTANCE
a .dll
,但出现此错误:
错误 LNK2019:函数中引用了无法解析的外部符号“__declspec(dllimport) struct HINSTANCE__ * m_instance”(__imp_?m_instance@@3PEAUHINSTANCE__@@EA)...
这是的代码.dll
:
#include <Windows.h>
__declspec(dllexport) HINSTANCE m_instance;
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID)
{
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
m_instance = (HINSTANCE)hModule;
}
return TRUE;
}
这是应用程序的代码:
__declspec(dllimport) HINSTANCE m_instance;
// use it for whatev
总而言之,我需要一种方法将HINSTANCE
from my.dll
放入 my .exe
.
解决方案
总而言之,我需要一种方法将
HINSTANCE
from my.dll
放入 my.exe
.
但为什么???一旦 将.exe
加载.dll
到其内存中,.exe
就已经可以从或.dll
的HINSTANCE
返回值访问。因此,永远不需要自己的导出。LoadLibrary/Ex()
GetModuleHandle()
.dll
HINSTANCE