gpt4 book ai didi

c++ - 我应该使用什么函数在 mac OS X 中打开文件?

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:57 24 4
gpt4 key购买 nike

我使用 C++ Builder 创建我的跨平台应用程序。在应用程序中,我将通过打开文件对话框获取文件名/路径。在 Windows 中,照顾 unicode 字符串是没有问题的。 (例如“C:\测试”)在 mac OS X 中,我可以从 UnicodeString 中获取正确的字符串。但我找不到将其转换为字符数组并使用“fopen”正确打开文件的好方法。我试图将 UnicodeString 直接分配给 AnsiString,但它变成了“C:\??”。因为“fopen”只接受“char*”,UnicodeString 只能导出“char16*”,所以我需要将它转换为char 以用于“fopen”。有什么想法吗?

最佳答案

只是因为 fopen() 需要一个 char* 并不意味着你应该给它一个 ANSI 字符串。 OSX 上的 POSIX API 接受 UTF-8 编码的文件名,因此使用 UTF8String 而不是 AnsiStringchar* 可以指向 UTF-8 字符串。

否则,不要直接使用fopen()。改用 RTL 自己的函数,例如 System.SysUtils.hpp 单元中的 FileCreate()/FileOpen(),或 TFileStream System.Classes.hpp 单元中的类。让 RTL 在内部决定如何为您与平台 API 交互。

关于c++ - 我应该使用什么函数在 mac OS X 中打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com