DragQueryFile无法识别平假名字符

时间:2019-07-07 19:28:07

标签: c++ windows unicode

我正在尝试在拖放界面中添加对平假名字符的支持。

//This works but replaces Hiragana with ?! 
string Buffer;
Buffer.resize(DragQueryFileA(hDrop, uFile, NULL, MAX_PATH));
cout << DragQueryFileA(hDrop, uFile, &Buffer[0], MAX_PATH) << ' ';
cout << Buffer;

//This works but but if I drop a file with Hiragana it turns it to whitespaces and will no longer load files
wstring wBuffer;
wBuffer.resize(DragQueryFileW(hDrop, uFile, NULL, MAX_PATH));
cout << DragQueryFileW(hDrop, uFile, &wBuffer[0], MAX_PATH) << ' ';
wcout << wBuffer;

我尝试通过WM_DROPFILES使用Windows消息 并尝试通过IDropTarget使用OLE + Shell

两者都可以完美地处理掉掉的单个/多个文件,而不能与平假名一起使用。

// DragQueryFileA C:/ Test / 20。ポジティブに行こう!.txt 变成 C:/ Test / 20。??????????????????。txt

DragQueryFileW 将平假名变成空白,再也无法使用

我相信我已经在使用unicode ...

我开始使用DragQueryFile与DragQueryFileW / DragQueryFileA,但结果似乎相同

预先感谢:)

0 个答案:

没有答案