内存错误调完了

This commit is contained in:
Mike Solar
2023-07-30 13:57:54 +08:00
parent 0483fe84f9
commit 6255beecea
9 changed files with 55 additions and 45 deletions

View File

@ -21,6 +21,7 @@
#include <QGuiApplication>
#include <QApplication>
#include <ctime>
#include <qDebug>
#pragma comment(lib, "wbemuuid.lib")
#ifdef _DEBUG
#pragma comment(lib, "Qt5Networkd.lib")
@ -47,7 +48,7 @@ RequestBodyBase::RequestBodyBase(){
QString request_id=QString::fromWCharArray(unix_time);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
QString dir=QApplication::applicationDirPath();
QFile *infFile=new QFile(dir+"config/information.kmd");
QFile *infFile=new QFile(dir+"/config/information.kmd");
if(!infFile->open(QIODevice::ReadOnly|QIODevice::Text)){
QMessageBox::critical(nullptr,QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"));
delete infFile;
@ -83,18 +84,14 @@ RequestBodyBase::RequestBodyBase(){
exit(1);
}
version=obj_root.value("version").toString();
if(obj_root.value("device_id")==QJsonValue::Undefined){
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit(1);
}
device_id=obj_root.value("device_id").toString();
}else{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMessageBox::warning(nullptr,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit(1);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ϵͳ<CFB5>
os="Windows";
this->os="Windows";
OSVERSIONINFOEX os;
os.dwOSVersionInfoSize=sizeof(os);
GetVersionEx((OSVERSIONINFO *)&os);
@ -130,7 +127,7 @@ RequestBodyBase::RequestBodyBase(){
//<2F><>ȡMachineGUID<49><44>ȡMD5<44><35>Ϊdevice_id
QByteArray hash = QCryptographicHash::hash(getMachineGUID().toUtf8(), QCryptographicHash::Md5);
device_id=hash.toHex();
infFile=new QFile(".\\config\\information.kmd");
infFile=new QFile(dir + "/config/information.kmd");
if(!infFile->open(QIODevice::WriteOnly|QIODevice::Text)){
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"));
@ -140,7 +137,7 @@ RequestBodyBase::RequestBodyBase(){
}
//<2F><><EFBFBD><EFBFBD>json<6F><6E><EFBFBD><EFBFBD>
QJsonValue value=device_id;
QJsonObject obj_root;
QJsonObject obj_root = qJsonDocument.object();
obj_root.insert("device_id",value);
qJsonDocument.setObject(obj_root);
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
@ -149,25 +146,24 @@ RequestBodyBase::RequestBodyBase(){
infFile->close();
delete infFile;
}
QJsonValue os_json(this->os);
QJsonValue os_version_json(this->os_version);
QJsonValue sign_json(QString("123456789890"));
QJsonValue requestId_json=QJsonValue(request_id);
QJsonObject obj_root;
QJsonObject obj_root=qJsonDocument.object();
//<2F><><EFBFBD><EFBFBD>request_id
obj_root.insert("request_id",requestId_json);
obj_root.insert("os", os_json);
obj_root.insert("os_version", os_version_json);
obj_root.insert("sign", sign_json);
qJsonDocument.setObject(obj_root);
}
void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
timer = new QTimer(this);
timer = new QTimer(this);
QNetworkAccessManager *httpMgr = new QNetworkAccessManager();
/* QFile *file=new QFile(".\\config\\config.cfg");
if(!file->open(QIODevice::ReadOnly|QIODevice::Text)){
QMessageBox::warning(nullptr,"<22><><EFBFBD><EFBFBD>","<22>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
file->close();
delete file;
exit(1);
}*/
QNetworkRequest requestInfo;
//HTTP<54><50><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͷ
@ -175,33 +171,40 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
reply = httpMgr->post(requestInfo,qJsonDocument.toJson());
qDebug() << qJsonDocument.toJson();
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>߻<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֹ
connect(reply,&QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
//<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>ʱ
connect(timer,&QTimer::timeout,this,&ConfigRequest::cancelDownload);
timer->start(5000);
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
eventLoop.exec();
delete httpMgr;
eventLoop.exec();
timer->stop();
//delete httpMgr;
QJsonDocument result;
configResponse=new ConfigResponse;
memset(configResponse,0,sizeof(*configResponse));
configResponse->succeed = false;
//memset(configResponse,0,sizeof(*configResponse));
auto error = reply->error();
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD>
if(reply->error() == QNetworkReply::NoError) {
result = QJsonDocument::fromJson(reply->readAll());
}else{
//<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
configResponse->succeed=false;
delete reply;
//delete reply;
delete timer;
delete httpMgr;
return;
}
qDebug() << result.toJson();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(result.isObject()){
QJsonObject obj_root=result.object();
QJsonArray array;
array = obj_root.value("menu").toArray();
configResponse->menus=new QList<Menu>;
auto i=0;
for(auto value:array){
QJsonObject object=value.toObject();
@ -211,16 +214,18 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
menu.title=object.value("title").toString();
menu.func=object.value("func").toString();
menu.url=object.value("url").toString();
*configResponse->menus << menu;
configResponse->menus << menu;
i++;
}
}else{
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
configResponse->succeed=false;
delete reply;
//delete reply;
delete timer;
delete httpMgr;
return;
}
delete httpMgr;
}
void RequestBodyBase::cancelDownload() {
disconnect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);