在C ++中共享多个Dll之间的变量

时间:2012-07-14 16:41:50

标签: c++ dll dllimport dllexport data-sharing

我需要在2个C ++ Dll之间共享一个变量(1000s)。我该怎么办?

MyVariables.Dll包含:

int a = 0;

ModifyMyVariables.Dll包含:

extern int a;    
a++; 
// do more stuff with a;

我应该在以下文件中写什么?

myvariables.h
myvariables.cpp
ModifyMyVariables.h
ModifyMyVariables.cpp

1 个答案:

答案 0 :(得分:1)

您可以使用几种基本机制在图像之间共享数据(EXE,DLL ...)(使用extern不能共享数据 - 它只指示链接器而不是加载器!)

  1. 使用导入/导出符号(使用标准导入地址表/导出表)
  2. 使用包含您数据的static sections
  3. 使用包含您数据的dynamic sections
  4. 在你的情况下,我会使用这些部分。这非常好用。当然,在从双方访问(写入)这些数据时,您必须注意同步。