要改变数据段和类名字,您需要在您想要共享的文件中增加 #pragma option -zR[段名字]和#pragma option -zT[类名字]
下面的代码将输出一个称为\'data\'的整数。
File: SharedData.cpp
#pragma option -zRSHSEG // 改变缺省的数据段名字
#pragma option -zTSHCLASS // 改变缺省的数据类名字
// 初始化我们打算共享的数据
int data = 0;
注意本文件中的段名是SHSEGSHCLASS。
Linker需要一个.def文件来创建共享段。下面是.def文件的内容。
File: Shared.def
LIBRARY SHAREDDLL
SEGMENTS
SHSEG CLASS \'SHCLASS\' SHARED
下面是包含dll入口点的dll源文件以及头文件。
包括了设置及取得共享内存段的方法。
File: SharedDLL.h
#ifdef __DLL__
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
extern \"C\"
{
void DLL_EXPORT SetData(int x);
int DLL_EXPORT GetData(void);
}
File: SharedDLL.cpp
#include
#pragma hdrstop
#include \"Shared.h\"
USEUNIT(\"SharedData.cpp\");
USEDEF(\"Shared.def\");
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
extern int data;
void DLL_EXPORT SetData(int x)
{
data = x;
}
int DLL_EXPORT GetData(void)
{
return data;
}