seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

DLLの静的データセグメントを複数のプロセスで共有する方法

ソース内で静的データセグメントをPRAGMAで定義。かならず初期化しておく。

#pragma data_seg("SHAREDMEM")
namespace
{
	LONG volatile lock = 0;
	LONG volatile data1 = 0;
	LONG volatile data2 = 0;
}
#pragma data_seg()

.DEF内で、指定したセグメントが共有であることを明示する。

LIBRARY	SharedMem1DLL

SECTIONS
	SHAREDMEM READ WRITE SHARED