http://msdn.microsoft.com/zh-tw/library/h90dkhs0(v=vs.90).aspx
{
微軟的教學裡面有打錯字TMD.
下面這2行沒有批配, 害我compiler後,沒達到效果
(".myseg")
/SECTION:.MYSEC,RWS,
}
data_seg 可以用來建立一個新的具名區段 (在此範例為 MYSEC)。最常見的用法,是清楚地呼叫資料區段 .shared。
接著您必須在 .def 檔中或是使用連結器選項 /SECTION:MYSEC,RWS,為這個新的具名資料區段指定正確的共用屬性。
http://stackoverflow.com/questions/17700409/create-a-dll-to-share-memory-between-two-processes 範例
#pragma data_seg ("MYSEC") 重點在這裡"MYSEC" 這字串要和 連結器選項中的字串一模一樣(含大小寫) /SECTION:MYSEC
dlltest.h
#ifndef _DLLTEST_H_
#define _DLLTEST_H_
#include <iostream>
#include <stdio.h>
#include <windows.h>
extern "C" __declspec(dllexport) int get();
extern "C" __declspec(dllexport) void set(int temp);
#endif
dlltest.cpp#include "dlltest.h"
#pragma data_seg("SHARED")
int x = 0;
#pragma data_seg()
extern "C" __declspec(dllexport)
int get()
{
return x;
}
extern "C" __declspec(dllexport)
void set(int temp)
{
x = temp;
}
#pragma comment(linker, "/section:SHARED,RWS")
===========================================
使用MT4的dll可以不用放在 library裡面.
把dll放在 windows/system/ 下面一樣可以呼叫的到 .使用一個dll就可以share 資料
===========================================================
沒有留言:
張貼留言