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);
こんな感じ。
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");
ありがとうございます。
2017/02/24 18:54:12