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);

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2017/02/24 22:41:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

ポイント200pt

こんな感じ。

    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");
id:mai_mai_mail

ありがとうございます。

2017/02/24 18:54:12

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません