【发布时间】:2019-03-03 19:33:28
【问题描述】:
在 Windows 上,我有一个程序可执行文件,它是通过 Windows 挂钩进行 DLL 注入的目标。该钩子通过强制执行 LoadLibrary() 将我的 DLL 注入目标的程序空间。我想将特定变量从 exe 导出到 DLL,以便 DLL 可以读取该变量的内容。
由于这是动态链接,因此链接器不会将 exe 和 DLL 链接在一起。我无法构建 DLL,因为我在尝试从 exe 导入的变量上收到链接器错误 2001 - unresolved external - 。我尝试在 DLL 中使用它: extern "C" __declspec(dllimport) EGL_UINT8 *ssFrameDataBlock[];
但这并不能解决链接错误。显然我错过了一些步骤。如何从 exe 导出符号并将其导入 DLL 以进行动态链接?导出和导入每一侧的正确语法是什么?
【问题讨论】:
-
你应该在你的DLL中定义一个SetFramePtr作为例子,然后从你的应用程序中调用它,以便将共享指针传递给你的DLL。
-
是的,如果可以的话,我会这样做 - 让 .exe 通过函数调用将共享变量的地址传递给 DLL。
标签: c++ windows dll dynamic-linking