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

原文来自 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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值