ファイルの読み出しが文字化け
Posted: 2011年4月01日(金) 03:29
あるファイルのパスをファイルに書き込み保存して、あるタイミングで読み出したいのですが、「蓮」という字をReadFile関数を使用して読み出すときに文字化けしてしまいます。なぜかファイルに書き込むのはうまくいっています。対策はありますか?よろしくお願いします。
TCHAR TempPath[MAX_PATH]={0};
DWORD FileSize,temp,PathSize;
hFile = CreateFile(DirPath, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if(hFile == INVALID_HANDLE_VALUE){
MessageBox::Show( "ファイルを開くことが出来ません。","ファイルオープンエラー");
Close();
}
FileSize = GetFileSize(hFile,NULL)+1;
TCHAR *heap = (TCHAR *)malloc(sizeof(TCHAR)*FileSize);
TCHAR *p_heap=heap;
ZeroMemory(heap,FileSize);
ReadFile(hFile,heap,FileSize,&temp,NULL);
CloseHandle(hFile);
TCHAR WritePath[sizeof(ExePath)+100];
HANDLE hFile2;
DWORD SizeData;
int flag;
wsprintf(WritePath,"%s@%s",ExePath[0],ExePath[1]);
hFile2 = CreateFile(DirPath, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if(hFile2 == INVALID_HANDLE_VALUE){
MessageBox::Show( "ファイルを開くことが出来ません。","ファイルオープンエラー");
Close();
return;
}
flag=WriteFile(hFile2,WritePath,lstrlen(WritePath),&SizeData,NULL);
if(flag==NULL){
MessageBox::Show( "ファイルの書き込みに失敗しました。","ファイル書き込みエラー");
}
CloseHandle(hFile2);