无法创建QFile(仅适用于msvc2017 uwp)

时间:2019-07-07 05:29:22

标签: c++ qt uwp qt5

创建一个简单的应用程序qt5.12,5.13将其编译为uwp mcvc 64位2017

尝试创建文件:

bool ret;
FILE *fp = fopen ("Name","w+"); // this command return NULL
QFile file("Name");
Ret = file. open(QIODevice::ReadWrite);

也提交了:

winrtrunner.app: QIODevice::write (QFile, "Name"): device not open

1 个答案:

答案 0 :(得分:1)

如果fopen ("Name","w+")返回NULL,则无法打开文件。因此,当您打开并尝试使用Qt东西对其进行写操作时,几乎肯定会得到一个错误。

您需要找出为什么无法打开它。首先,您应该在失败的errno之后检查fopen,或使用perror获得更具可读性的输出:

FILE *fp = fopen("Name", "w+");
if (fp == NULL) perror("Could not open file: ");

此外,您可以使用(继承的)QFile.open()来检查失败的QIODevice::errorString()的原因:

ret = file. open(QIODevice::ReadWrite);
if (! ret) {
    const auto problem = file.errorString();
    // Now log problem somehow.
}