" Program Files"中的非ascii字符或者用户\公共?

时间:2015-01-22 03:41:50

标签: windows inno-setup fopen non-ascii-characters program-files

我有大量现有的C ++代码,它们在各个地方使用普通的fopen()来打开文件。通常,使用的路径是绝对路径,并以“C:\ Program Files(x86)\ MyProgram ...”或“C:\ Users \ Public \ MyProgramData ...”开头。

程序和数据由标准安装程序(InnoSetup)安装到这些位置。

(“C:\ Program Files(x86)”和“C:\ Users \ Public”在代码中没有硬编码。但这些是建议的程序和数据安装位置,所以大多数情况下这些都是打开文件的路径,由安装程序创建,可能是这些文件夹在用户机器上应具有的任何本地名称。)

我担心在非英语版本的Windows上,这些路径前缀可能包含非ascii字符,这会使fopen()不满意。

对于“程序文件”,以下引用使我觉得最常见的语言之一是匈牙利语(“Programfájlok”):

对于“Users \ Public”,我找不到像这样的常用语言翻译的参考文献,但在西班牙语中,我想它一定是Pública?

你知道在这两条路径上使用普通的fopen(),我可能会遇到哪些陷阱吗?

1 个答案:

答案 0 :(得分:3)

使用带有unicode路径的_wfopen

https://msdn.microsoft.com/en-us/library/yeby3zcb.aspx