我有一个关于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?

10-04 14:23