人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VS2015 Cについて教えてください。メモリマップドファイルの書き込みをやっています。
Win32アプリです。

以下は文字列として書くソースです。お聞きしたことはintとdoubleの値を書きたいです。どのようにすればいいでしょうか? 読む側は別アプリでc#でReadDouble等を使います。

宜しくお願いします。

LPCTSTR szStr=L"1.1";

if (!hFMWrite)CloseHandle(hFMWrite);

hFMWrite = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"SharedMemory");
lpStr = (LPWSTR)MapViewOfFile(hFMWrite,FILE_MAP_ALL_ACCESS, 0, 0, 0);
lstrcpy(lpStr, szStr);

●質問者: mai_mai_mail
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●200ポイント ベストアンサー

こんな感じ。

 int *pInt;
 double *pDouble;

 hFMWrite = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"SharedMemory");

 pInt = (int*)MapViewOfFile(hFMWrite,FILE_MAP_ALL_ACCESS, 0, 0, 0);
 *pInt = 10;

 pDouble = ((double*)pInt) + 1;
 *pDouble = 3.1415;

複数の値を書き込むときには、位置を意識しなくちゃいけないので、構造体を使うのが楽です。

 struct share_data {
 int no;
 double value;
 char name[128];
 } *p;

 hFMWrite = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"SharedMemory");

 p = (struct share_data*)MapViewOfFile(hFMWrite,FILE_MAP_ALL_ACCESS, 0, 0, 0);
 p->no = 10;
 p->value = 3.1415;
 strcpy(p->name, "a-kuma3");

mai_mai_mailさんのコメント
ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ