首页 文章

如何链接DLL用于LoadLibrary()使用(在Windows上的C中)并从调用exe导入变量

提问于
浏览
0

在Windows上我有一个程序可执行文件,它是通过Windows钩子注入DLL的目标 . 钩子通过强制它执行LoadLibrary()将我的DLL注入目标的程序空间 . 我想将一个特定的变量从exe导出到DLL,以便DLL可以读取该变量的内容 .

由于这是动态链接,因此链接器不会将exe和DLL链接在一起 . 我无法构建DLL,因为我在我试图从exe导入的变量上得到链接器错误2001 - 未解析外部 . 我试图在DLL使用这样的:外部的 “C” __declspec(dllimport的)EGL_UINT8 * ssFrameDataBlock [];

但这并不能解决链接错误 . 显然我错过了一些步骤 . 如何从exe导出符号并将其导入DLL以进行动态链接?导出和导入的每一方的正确语法是什么?

1 回答

  • 1

    你还记得用__declspec(dllexport)装饰可执行文件的变量定义吗?然后,您需要提供exe的.lib文件作为DLL构建的一部分 .

    如果你不出口至少一个符号(无论是通过DLLEXPORT,或在DEF文件或命令行上EXPORTS语句)没有的.lib文件会产生 .

    如果你不能提供的.lib到DLL Build 你也可以从DLL的代码中使用GetProcAddress的()(尽管它命名为能获得任何出口的地址,而不仅仅是功能) .

相关问题