char tempFilename[256];
wchar_t filename[512];
fprintf(stdout, "Please enter file name/path: \n");
getchar();
fgets(tempFilename, 255, stdin);
MultiByteToWideChar(CP_ACP, 0, tempFilename, -1, filename, strlen(tempFilename)*2);
if((hReadFile = CreateFile(filename, GENERIC_READ , 0, 0, OPEN_EXISTING, 0, 0)) == INVALID_HANDLE_VALUE)
{
fprintf(stdout, "File could not be opened, make sure name is under 256 chars. Error Code - %d.\n", GetLastError());
return (0);
}
MultiByteToWideChar() が成功することを確認しました。
実際、 C:\users\user_name\desktop\test.txt の代わりに C:\users\user_name\desktop\test.txt のようなパスも試しました
以下を使用して \ を \\ に変換します
while(temp < len )
{
filename1[cntr1] = tempFilename[temp];
cntr1 += 1;
if(tempFilename[temp] == '\\')
{
filename1[cntr1] = '\\';
cntr1 += 1;
}
temp += 1;
}
これは \ から \\ まで機能します。どこが間違っているのでしょうか..?