在C++Builder中建立共享記憶體段 (轉)
原文來自 community.borland.com
原文名字:Creating A Shared Memory Segment with C++Builder 4.0
譯名: 在C++Builder中建立共享段
C++Builder 4.0 是第一個支援共享記憶體段的C++Builder 。本文解釋如何在 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 WIN 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;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1004165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shmget() -- 建立共享記憶體記憶體
- aix 共享記憶體段大小限制AI記憶體
- linux共享記憶體段研究Linux記憶體
- aix 共享記憶體段問題AI記憶體
- 怎樣在C++Builder中建立使用DLL (轉)UI
- Linux釋放記憶體及手動釋放Oracle共享記憶體段Linux記憶體Oracle
- UNIX共享記憶體的程式(轉)記憶體
- 在C++Builder中建立Access odbc資料來源 (轉)C++UI
- 共享記憶體記憶體
- 共享記憶體段未釋放導致資料庫記憶體被耗盡記憶體資料庫
- C++Builder 記憶體洩漏檢查工具-CodeGuard (轉)C++UI記憶體
- 段頁式記憶體管理(轉載)記憶體
- Golang 共享記憶體Golang記憶體
- POSIX共享記憶體記憶體
- oracle 共享記憶體Oracle記憶體
- nginx共享記憶體分析Nginx記憶體
- QT之共享記憶體QT記憶體
- 共享記憶體函式記憶體函式
- SGA與共享記憶體記憶體
- linux共享記憶體Linux記憶體
- 在Win32中管理虛擬記憶體 (轉)Win32記憶體
- Kubernetes中Pod間共享記憶體方案記憶體
- Akka系列(四):Akka中的共享記憶體模型記憶體模型
- Akka 系列(四):Akka 中的共享記憶體模型記憶體模型
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- [20190104]ipcs檢視共享記憶體段.txt記憶體
- Qt共享記憶體QSharedMemoryQT記憶體
- Linux共享記憶體(二)Linux記憶體
- 修改/dev/shm共享記憶體dev記憶體
- 共享記憶體分段問題記憶體
- SGA與共享記憶體2記憶體
- fork函式中的記憶體複製和共享函式記憶體
- 【轉】java中的記憶體溢位和記憶體洩漏Java記憶體溢位
- Oracle記憶體結構(四)----如何獲得Oracle各記憶體段的內部資訊(轉)Oracle記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- Linux從頭學03:如何告訴 CPU,程式碼段、資料段、棧段在記憶體中什麼位置?Linux記憶體
- nginx中共享記憶體的使用Nginx記憶體
- 程式間通訊---共享記憶體記憶體