|
分類:[.NET 全般]
タイトルが文字数制限に引っ掛かってしまいました・・・^^;
Win32 API のCreateFileMappingを使って、メモリマップドファイルを
作成した際の、送信側のCloseHandleのタイミングについて教えてください。
現在のCloseHandleするまでの流れは、次のようになっています。
//作成
HANDLE hMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
PAGE_READWRITE, 0, sizeof(MESSAGE), TEXT("C_VB_MEMORY_SHARED"));
if(hMapping == NULL){
MessageBox(NULL,TEXT("CreateFileMapping NULL"),TEXT("DEBUG"),MB_OK);
return;
}
//アドレス取得
p_msg = (MESSAGE *) MapViewOfFile(hMapping, FILE_MAP_WRITE, 0, 0, 0);
if(p_msg == NULL){
MessageBox(NULL,TEXT("MapViewOfFile1 NULL"),TEXT("DEBUG"),MB_OK);
return;
}
//データセット
memset(&msg,NULL,sizeof(MESSAGE));
msg.m_len = strlen(p);
memcpy(msg.m_message,p,strlen(p));
//メモリマップドファイルへの書き込み
memcpy(p_msg,&msg,sizeof(MESSAGE));
//相手に教える
if(PostMessage(SendWnd,SEND_MESSAGE,0,0)==0){
MessageBox(NULL,TEXT("PostMessage FALSE"),TEXT("DEBUG"),MB_OK);
}
//リソースの解放
UnmapViewOfFile(p_msg);
CloseHandle(hMapping);
分類は、.NET全般で大丈夫ですかね??
|