首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何链接LoadLibrary()的DLL ()使用(在Windows上的C++中)并从调用exe中导入变量

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

Stack Overflow用户
提问于 2018-09-28 04:18:45
回答 1查看 171关注 0票数 0

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

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

但这并不能解决链接错误。显然,我遗漏了一些步骤。如何从exe中导出元件并将其导入到DLL中以进行动态链接?对于导出和导入,每一端的正确语法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-09-28 05:17:52

您是否记得使用__declspec(dllexport)来修饰可执行文件的变量定义?然后,您需要提供可执行文件的.lib文件作为DLL构建的一部分。

如果不导出任何一个符号(无论是通过dllexport,还是通过定义文件或命令行中的EXPORTS语句),都不会生成.lib文件。

如果您不能提供DLL构建的.lib,您也可以在DLL代码中使用GetProcAddress() (不管名称如何,它可以获得任何导出的地址,而不仅仅是函数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52544549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档