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

原创 2001年05月20日 13:28:00

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

oracle 共享内存段探究

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • stephen11111
  • stephen11111
  • 2016年09月18日 12:01
  • 700

C++ Builder 中 CreateFile的用法

CreateFile(1)函数原型HANDLE CreateFile(LPCTSTR lpfileName,DWORD deDesiredAccess,DWORD dwShareMode,LPSECU...
  • s4gg
  • s4gg
  • 2006年12月08日 14:54
  • 4824

C++Builder在编译的时候报错

在编译一个小程序的时候,C++Builder总是报错,错误信息如下:[Linker Error] Unresolved external WinMain referenced from C:/Prog...
  • zjntche_cn
  • zjntche_cn
  • 2007年03月20日 16:07
  • 2338

在C++ Builder中打开浏览器加载页面

今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开。这个东东本身很简单哈。在C++ Builder 中有对应的API函数,下面我们一起来讲讲: 调用外部命令...
  • sevenkj
  • sevenkj
  • 2014年10月29日 09:59
  • 1229

C++Builder6.0支持图片插入的TRichEdit增强

C++Builder6.0的TRichEdit控件,默认无法显示图片。在有中文字符的情况下,图片的插入位置也无法很好控制,以下这段代码解决了这两个问题。 这部分代码分为三个部分: 1.让TRich...
  • twicave
  • twicave
  • 2016年05月24日 17:01
  • 788

显示调用共享内存dll

隐式调用dll:VS2008创建DLL,并且使用DLL
  • wu_123_456
  • wu_123_456
  • 2014年09月25日 15:46
  • 907

C++builder异常类

class EInvalidBaudRate:public Exception { public: EInvalidBaudRate(const String Msg):Except...
  • chinayu2007
  • chinayu2007
  • 2016年08月18日 12:33
  • 235

怎样在C++Builder中创建使用DLL

怎样在C++Builder中创建使用DLL 自从C++Builder从去年浪漫情人节上市以来,吸引了大量的Delphi、VC、Vb的程序员到它的怀抱,大量的C、C++程序员感叹道:总算有了C的可视化开...
  • dansan
  • dansan
  • 2002年11月21日 10:06
  • 996

在C++Builder中创建Access odbc数据源

想用BDE导Access数据库,要创建ODBC 数据源。找了半天也没见着BCB写的代码,所以我改写了一个。如有不足处,请指正。 ========jianlinlong@163.net/*函数功能:创建...
  • jianlinlong
  • jianlinlong
  • 2003年07月02日 16:09
  • 884

C++ BUILDER中关于image字段的写法

我在SQL SERVER中建一BLOB字段存储图片,保存时没问题,同时在数据库中看到已经保存.我将BLOB字段取出来显示到IMAGE控件中时出现错误,提示为读取地址错误,不知为何原因,敬请高手指点一番...
  • zero88
  • zero88
  • 2006年03月10日 21:57
  • 2110
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在C++Builder中创建共享内存段
举报原因:
原因补充:

(最多只允许输入30个字)