![](/img/trans.png)
[英]Exception thrown at 0x00007FF63C04254B in Elements.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF
[英]"Unhandled exception at 0x000007FEFD5D7C8A (ole32.dll) in myprogram.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF"
我正在嘗試使用 QfileDialog(作為靜態 fct)讓用戶選擇和讀取“.txt”文件,如下所示:
void VisOCMConfig::readNmbTiles()
{
QString m_findFile;
m_findFile = QFileDialog::getOpenFileName(0, tr("Open TextFile"),
QDir::homePath(), tr("Text files (*.txt)"));
QFile myfile(m_findFile);
if (!myfile.open(QIODevice::ReadOnly | QIODevice::Text))
return;
else
while (!myfile.atEnd())
{
m_scanPos = myfile.readLine();
m_nmbofLines++;
}
myfile.close();
qDebug() << "Scan Positions: (" << m_scanPos.size() << "): " << m_scanPos;
m_nmbofScan->setText(QString("#Tiles: %1").arg(m_nmbofLines));
}
其中 m_scanPos 是在 VisOCMConfig.h 中初始化的 QByteArray。
當我運行程序時,它工作正常,直到突然出現中斷並顯示以下消息:
VisOCMConfig.exe 中 0x000007FEFD5D7C8A (ole32.dll) 處的未處理異常:0xC0000005:訪問沖突讀取位置 0xFFFFFFFFFFFFFFFF
我在其他問題上讀到這可能是由於使用了空指針,但我仍然迷失了它。 你能認出我的錯誤嗎?
我一直有同樣的問題。 嘗試使用“DontUseNativeDialog”作為標志。 我相信這可以解決崩潰問題,但隨后您會遇到一個非本地對話框。
我也有同樣的問題。 解決方案也是使用非本地 QFileDialog。 實際上它只出現在調試模式下。 在發布模式下,一切都很好。
相同的代碼在 QT4.8 下工作。 不知何故,使用 QT5.6 時並非如此。
那些對這個問題投反對票的人(我投了贊成票)非常歡迎對我的回答投反對票。
我在 Qt 5.2.1 中遇到了同樣的問題 - 使用 QFileDialog::getOpenFileName() 后在 ole32.dll 中出現相同的異常 - 不是立即而是在 10 - 60 秒后。 如果我繼續申請並且打開文件后什么都不做,就會發生這種情況,只需等待一段時間。 使用@aeson 和@guest 建議的“DontUseNativeDialog”可以避免這個問題。 我希望這些信息可以幫助其他人。
@MartinBonner 我認為標簽應該改回 QFileDialog 因為問題顯然與它有關
我遇到了同樣的錯誤 - 我的應用程序在調試模式下崩潰了。
如果您在發生此問題時檢查調用堆棧,您會注意到該問題與 NetworkItemFactory.dll 組件有關。
這里描述了一個類似的問題: VS2013下marshal.cxx中的未處理異常
Microsoft 修復了此問題,因此解決方案是應用 Microsoft 的修補程序Windows6.1-KB2718841
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.