在C++Builder中创建共享内存段

王朝c/c++·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

原文来自 community.borland.com

原文名字:Creating A Shared Memory Segment with C++Builder 4.0

译名: 在C++Builder中创建共享内存段

C++Builder 4.0 是第一个支持共享内存段的C++Builder 编译器。本文解释如何在windows DLL中使用此特性。

要改变数据段和类名字,您需要在您想要共享的文件中增加 #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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航