使用Qt應用程序。我試圖讓exe文件在運行時返回自己的md5校驗和。我怎樣才能做到這一點?Qt如何獲得應用程序以獲取其本身的md5校驗碼
我嘗試這樣做:
QFile theFile("file.exe");
QByteArray thisFile;
if (theFile.open(QIODevice::ReadOnly))
{
thisFile = theFile.readAll();
}
else
{
qDebug() << "Can't open";
}
qDebug() << QString("%1").arg(thisFile.length());
fileMd5 = QString(QCryptographicHash::hash((thisFile), QCryptographicHash::Md5).toHex().toUpper());
qDebug() << fileMd5;
這不會返回正確的值,但是。
更新:
我得到它與其他文件的工作。問題似乎是我無法在運行時讀取exe文件。
最後更新:
這是解決方案:
QFile theFile(QCoreApplication::applicationFilePath());
QByteArray thisFile;
if (theFile.open(QIODevice::ReadOnly))
{
thisFile = theFile.readAll();
}
else
{
qDebug() << "Can't open file.";
}
QString fileMd5 = QString(QCryptographicHash::hash((thisFile), QCryptographicHash::Md5).toHex());
qDebug() << fileMd5;
你必須做一個它的副本,但我現在不怎麼......爲什麼這樣做? –
這將用於檢查版本。我不希望檢查版本號,而是希望我的應用程序獲得自己的md5校驗和,並將其與PHP腳本進行比較,該腳本將返回最新版本的另一個md5校驗和。如果它們不匹配,則會向用戶顯示鏈接以下載最新版本。 –