我不是 Windows 用户,但我正在尝试帮助将 QT 项目移植到 Windows 中,该项目遇到了一些相当奇怪的问题(对我来说,无论如何)。我希望有人可以帮助我指出正确的方向。
因此,我可以在 Windows 7 专业 32 位机器(QT 5.1.1、MinGW 4.8.1、exiv2)上成功构建项目。虽然一切都在构建机器上运行,但程序在某些机器上崩溃(到目前为止,它在 64 位 Windows 7 专业版和另一个 32 位 Windows 7 上崩溃)但在其他机器上也能正常工作。崩溃消息并不是那么有用,因为它是一个通用的 StackHash / APPCRASH 错误。我尝试更改 DEP 设置,但这没有用(而且我不确定我是否会接受它作为“解决方案”)。我缩小了崩溃发生的位置(幸好这是一致的),下面是一个示例片段(读取文件夹中的 jpeg 文件并打印它们的时间戳)。
调用exiv2(exiv2-12.dll)中的任何函数都会导致程序崩溃
Exiv2::Image::AutoPtr exiv = Exiv2::ImageFactory::open(imagePath);
exiv->readMetadata();
Exiv2::ExifData data = exiv->exifData();
Exiv2::Value::AutoPtr v = Exiv2::Value::create(Exiv2::asciiString);;
if (data.findKey(dateTimeOriginal) != data.end())
v = (data.findKey(dateTimeOriginal))->getValue();
else if (data.findKey(dateTimeDefault ) != data.end())
v = (data.findKey(dateTimeDefault ))->getValue();
QString dateTime(v->toString().c_str());
this->ui->plainTextEdit->appendPlainText("\n" + dateTime);
任何帮助将不胜感激。