Qt 응용 프로그램에서 작업하기. 내가 실행하는 동안 자체의 md5 체크섬을 반환하는 exe 파일을 얻으려고 노력하고있어. 어떻게해야합니까?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 체크섬을 가져 와서 최신 버전의 다른 md5 체크섬을 반환하는 PHP 스크립트와 비교해 보겠습니다. 일치하지 않으면 사용자에게 최신 버전을 다운로드 할 수있는 링크가 표시됩니다. –