我有大量现有的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(),我可能会遇到哪些陷阱吗?