创建一个简单的应用程序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
答案 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.
}