掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DelphiとVCでの共有メモリでの開始アドレスのずれ?? (ID:42181)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
下記コードで実験してみましたけど特にずれは無かったですね。 Delphi側 PData = ^TData; TData = record Data: Array[0..10] of Byte; end; const SFILEMAP_TEST = 'FILEMAP_TEST'; procedure TForm1.FormDestroy(Sender: TObject); begin if FHMap <> 0 then begin CloseHandle(FHMap); end; end; procedure TForm1.FormCreate(Sender: TObject); begin FHMap := CreateFileMapping(INVALID_HANDLE_VALUE, Nil, PAGE_READWRITE, 0, 1024, SFILEMAP_TEST); end; procedure TForm1.Button1Click(Sender: TObject); var p: PData; begin if FHMap <> 0 then begin p := MapViewOfFile(FHMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); ShowMessage(IntToStr(p.Data[1])); UnmapViewOfFile(p); end; end; procedure TForm1.Button2Click(Sender: TObject); var p: PData; begin if FHMap <> 0 then begin p := MapViewOfFile(FHMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); p.Data[1] := 5; UnmapViewOfFile(p); end; end; VC側ダイアログアプリ コンストラクタで m_hMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, 1024, _T("FILEMAP_TEST")); デストラクタで if (m_hMap) CloseHandle(m_hMap); void CMapFileDlg::OnBnClickedButton1() { LPVOID pMap; if (m_hMap) { pMap = MapViewOfFile(m_hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); char* pC = PCHAR(pMap); UnmapViewOfFile(pMap); } } void CMapFileDlg::OnBnClickedButton2() { LPVOID pMap; if (m_hMap) { pMap = MapViewOfFile(m_hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0); char* pC = PCHAR(pMap); pC[2] = 10; UnmapViewOfFile(pMap); } }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.