我有一个关于DLL中全局变量的导出/导入的问题。我有一个静态库,其中包含一个全局变量,例如:
在标题中:
#ifdef _ENGINE_EXPORTS
extern __declspec(dllexport) Globals data;
#else
extern __declspec(dllimport) Globals data;
#endif
在源文件中:
#ifdef _ENGINE_EXPORTS
__declspec(dllexport) Globals data;
#else
__declspec(dllimport) Globals data;
#endif
该全局变量在与该静态库链接的DLL中导出。我可以使用DLL Export Viewer看到导出的符号。我的问题是我想在另一个DLL中使用此全局变量,并且它们共享数据。现在,同一符号也已导出到DLL中(我也可以看到它),因此它们具有不同的地址。我希望在另一个DLL中,全局变量与第一个DLL中的相同。
谢谢。
最佳答案
以下MSDN文档主题描述了如何将数据放置在共享段中:
How do I share data in my DLL with an application or with other DLLs?