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

    技术2022-05-11  121

    原文来自 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.defLIBRARY 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)