関数からファイルの名前を取得し、それをcreateFileに渡す(createFileAに展開する)次のコードがあります。以前の質問では、file.c_str()を使用して、ファイル名をcreateFileAが使用するLPCTSTRに変換するように指示されました。ただし、createFileAが呼び出されるたびにファイルへのハンドルが無効になるため、これは機能しません。私は何が間違っているのですか?
string file = getFilename();
HANDLE hf = CreateFile(file.c_str(),GENERIC_READ | GENERIC_WRITE,(DWORD) 0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL);
if (hf == INVALID_HANDLE_VALUE)
{
MessageBox( hwnd,"CreateFile","Error", MB_OK);
}