信息
以下警告:
LINK : warning LNK4039: section '.SHARED' specified with /SECTION option does not exist
每当我尝试将向量存储在 C++ 中动态链接库的数据段中时,总会发生。
例如:
#include <vector>
struct Obj {
unsigned int A;
unsigned int B;
bool C;
std::vector< unsigned char > D;
};
#pragma data_seg( ".SHARED" )
std::vector< Obj > Objects;
#pragma data_seg()
#pragma comment ( linker,"/section:.SHARED,RWS" )
但是,如果我尝试存储一个简单的变量,编译时不会出现警告。像这样:
#pragma data_seg (".SHARED" )
int SimpleVariable = 0;
#pragma data_seg()
我不是绝对肯定的,但我相信警告是由于没有初始化向量引起的?如果是这样,我们如何初始化将存储在数据段中的向量?
我还有一个问题,将向量存储在 DLL 中的数据段中是不是一个糟糕的主意?
我的目标
我正在尝试在 DLL 中共享向量的内容,该 DLL 将被加载到几个不同的进程中。
像这样:
process_1.exe
- example.dll -| * access the same vector (SomeVector) as
| example.dll within process_2
|
std::vector SomeVector; // vector in example.dll
|
process_2.exe | * access the same vector (SomeVector) as
| example.dll within process_1
- example.dll -|