Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从GetOpenFileName获取UTF-8/Unicode字符串?_C++_Getopenfilename_Comdlg32 - Fatal编程技术网

C++ 如何从GetOpenFileName获取UTF-8/Unicode字符串?

C++ 如何从GetOpenFileName获取UTF-8/Unicode字符串?,c++,getopenfilename,comdlg32,C++,Getopenfilename,Comdlg32,我正在用MinGW/C++开发一个应用程序,它使用Windows的公共对话框。需要收集可能包含非ASCII字符的文件名。是否有标志或其他选项用于检索Unicode格式的文件名,或者最好是UTF-8格式的文件名?调用GetOpenFileNameW。您可以这样做,而无需将整个应用程序转换为Unicode,这可能是最方便的解决方案 WindowsAPI有两种风格,ANSI和Unicode。前者具有带有后缀的函数。后者有一个W后缀。您当前正在使用前者 也就是说,GetOpenFileName实际上是一

我正在用MinGW/C++开发一个应用程序,它使用Windows的公共对话框。需要收集可能包含非ASCII字符的文件名。是否有标志或其他选项用于检索Unicode格式的文件名,或者最好是UTF-8格式的文件名?

调用GetOpenFileNameW。您可以这样做,而无需将整个应用程序转换为Unicode,这可能是最方便的解决方案


WindowsAPI有两种风格,ANSI和Unicode。前者具有带有后缀的函数。后者有一个W后缀。您当前正在使用前者

也就是说,
GetOpenFileName
实际上是一个宏,默认情况下扩展为
GetOpenFileNameA