請問是否可將 PROJECT1.EXE 的 DataSet 給 PROJECT2.EXE 使用 |
尚未結案
|
ufjjc
一般會員 ![]() ![]() 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
Amanda_Chen
一般會員 ![]() ![]() 發表:25 回覆:82 積分:21 註冊:2003-12-28 發送簡訊給我 |
|
ufjjc
一般會員 ![]() ![]() 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
謝謝回應
不過 兩個 PROJECT 是不同的 EXE , 而不是同一 EXE,不同的 UNIT . 之前的 的寫法 如下
procedure TForm1.Button1Click(Sender: TObject);
type
PInteger = ^Integer;
var
Px,Py: PInteger;
ps : string; begin
//----------------------------------------------------------
// 將指標轉為字串 ,再將字串 轉為 指標
Px := ADDR( DataSource1.DataSet);
ps := intTOSTR(PX^); Py := ptr( STRTOINT(PS) );
DBDataSet1.DataSet := Pointer(py);
end
|
jest0024
高階會員 ![]() ![]() ![]() ![]() 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
|
ufjjc
一般會員 ![]() ![]() 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
bigdogchina
版主 ![]() ![]() ![]() ![]() ![]() 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
ufjjc大大,您好!
打擾您一下,看看這個idea,看能否對您解決問題有所幫助
unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const WM_DATA = WM_USER 1024; type PShareMem = ^TShareMem; TShareMem = record Data: array[0..255] of char; end; TMyForm = class(TForm) Memo1: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure getShareInfo(var Msg: TMessage); message WM_DATA; {處理WM_DATA} end; var MyForm: TMyForm; PShare: PShareMem; MapHandle: THandle; implementation {$R *.DFM} procedure TMyForm.getShareInfo(var Msg: TMessage); {處理WM_DATA} begin if msg.LParam=1 then {是我們設定的消息參數} Memo1.Text := PShare^.Data; end; procedure TMyForm.FormCreate(Sender: TObject); begin MapHandle := OpenFileMapping(FILE_MAP_WRITE, {獲取完全訪問映射文件} False, {不可繼承的} pchar('Map Name')); {映射檔案名字} if MapHandle = 0 then begin ShowMessage('不能定位記憶體映射文件塊!'); Halt; end; PShare := PShareMem(MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0)); if PShare = nil then begin CloseHandle(MapHandle); ShowMessage('Can''t View Memory Map'); Application.Terminate; exit; end; FillChar(PShare^, SizeOf(TShareMem), 0); end; procedure TMyForm.Button1Click(Sender: TObject); begin CloseHandle(MapHandle); close; end; end.先運行Project1,再運行Project2,然後單擊Project1的發送資料,就可以在Project2看到接受到的資料. 我也是一知半解,如有谬误,请多多指教!
------
人生在勤,不索何获? |
ufjjc
一般會員 ![]() ![]() 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |