c++动态DLL加载和函数定义的加载器
c++ dynamic dll loading and functions defined in the loader
我有Program A
(它是开源的,但我不能修改它的源代码)和DLL B
,它是由Program A
动态加载的。
是否有办法使用DLL B
在Program A
中定义的函数?
(可能帮助;Program A
有很多。h头文件,我需要的所有函数都定义在extern
在这些…)
extern定义生成A.exe的链接器可以使用该符号。当您想要获得符号(函数,变量,…)的地址时,必须导出符号。对于程序,通常不会这样做。
如果您的程序A.exe没有提供指针或方法来获取指向函数的指针,则无法在DLL b中使用程序A.exe的函数。
如果您有很多这样的函数,那么将它们导出到另一个库可能是值得的。例如,我正在开发一个10万行代码的应用程序,其中只有200行是可执行文件。
如果您的A程序用__declspec(dllexport)声明函数,或者如果您能够用您的*.def文件编译您的A程序,该文件列出了您在DLL B中需要的DLL导出然后您可以通过GetProcAddress Win32 API函数(传递可执行文件的模块句柄,您可以通过名称或其他方式获得-参见GetModuleHandle, GetModuleHandleEx)
相关文章:
- 在 C/C++ 中加载 OpenSSL 自定义引擎
- Linux c++.在预加载的共享库中定义的基类的崩溃调用函数
- 如何在Qt中使用QDataStream将自定义结构保存/加载到二进制文件中?
- 指向临时对象的自定义迭代器(延迟加载)
- 调用提取重加载器会产生对"运算符"的未定义引用错误>>
- 使用 c++ 时如何加载自定义操作库?
- 将RFC5114中定义的 1024 位 P 和 G 值加载到 boost uint1024 中
- 正在加载共享对象:文件中未定义版本Qt_5
- 在FreesWitch中使用AWS C SDK加载模块时未定义的符号错误
- C++调用lua_dostring来加载具有"require('cjson')"的Lua Scrip引发错误:cjson.so:未定义的符号:lua_getfield
- 在共享C++库中加载共享库时C++未定义的符号,该库本身由 Python 加载
- 如何在库加载时将预处理器定义传递给 DLL
- C++ Linux 加载共享库时出错“未定义的符号:pthread_create”
- 在 TensorFlow 中加载自定义操作时出现未定义的符号错误
- 在Python中加载共享库时未定义的符号
- QUiLoader:使用自定义小部件加载 .ui 文件的要求
- 加载共享库时未定义的符号"tbb internal Allocate"
- 如何加载自定义字体,以便我可以在 DirectX 中使用它们
- Qt自定义插件无法加载 - "Shared Library Not Found"
- 在Python脚本中加载.SO文件时未定义的符号错误