微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FMX 3D 和 fopen() 函数

如何解决FMX 3D 和 fopen() 函数

C++ Builder 10.4 的新特性。从 XE4 迁移。
一行代码 fopen() 在旧环境下正常运行
InputFileHandle = fopen(FileName,"rb");
不会在 FMX 3D 环境中为项目正在运行的同一目录中的文件返回有效指针。
如果您能给我一个解决方案,我将不胜感激。

解决方法

尝试检查发生了哪个错误

#include <errno.h>
....
FILE *InputFileHandle;
 
if ((InputFileHandle = fopen(FileName,"rb")) == NULL)
   printf(" %s \n",strerror(errno));

我只能看到两种可能的问题:

  • 权限错误,您必须修复文件权限。
  • 文件不存在意味着您的新框架更改了当前目录。
,

感谢 PHE 的回答以及您为我的问题发布的线索。我检查了文件的权限,它们可以根据需要访问。问题是“更改当前目录”导致文件无法识别。一个可靠的答案是从根目录指定文件的路径(这对于长文件路径可能很麻烦!)。要识别 Windows 路径,您应在相关字符串中指定两次正斜杠才能正确解码,例如“C://dir1//dir2//....//filename”。问候

,

感谢 PHE 的回答以及您为我的问题发布的线索。我检查了文件的权限,它们可以根据需要访问。问题是“更改当前目录”导致文件无法识别。一个可靠的答案是从根目录指定文件的路径(这对于长文件路径可能很麻烦!)。要识别 Windows 路径,您应在要正确解码的相关字符串中指定两次反斜杠,例如“C:\dir1\dir2\....\filename”。问候

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。