C ++ Win32 Wininet вызывает лаги или мой код? - PullRequest
1 голос
/ 28 марта 2012

Я создал программу с использованием Code :: Blocks и скомпилировал ее с помощью компилятора GNU GCC. Когда я нажимаю кнопку очень быстро, я получаю очень плохую задержку, я не знаю, из-за ли это моего кода или из-за того, что я использую Случаи для каждой кнопки. Из моего плохого способа использования строковых потоков и строк для концентрации моих строк я все еще новичок в этом, но это работает, если кто-то знает, что это очень поможет. он

case WM_COMMAND:
        switch(LOWORD(wParam))
        {
            /*
             * TODO: Add more control ID's, when needed.
             */
            case Create:
            {
                GetDlgItemText(hwndDlg, GuildN, Readuni, sizeof(Readuni));
                GetDlgItemText(hwndDlg, PWN, Readpw, sizeof(Readpw));
                GetDlgItemText(hwndDlg, Namen, Readnamec, sizeof(Readnamec));
                GetDlgItemText(hwndDlg, souln, Readsoulc, sizeof(Readsoulc));
                std::stringstream ss;
                ss << "uniform=" << Readuni << "&pw=" << Readpw;
                std::string sss = ss.str();
                char frmdata[1000] ;
                for(int i=0;i<1000;i++)
                frmdata[i]=sss[i];
                std::stringstream ssurl;
                ssurl << "/cgi-bin/myCGI/sr-guilds.cgi/WOS/create/0/" << Readsoulc << "." << Readnamec << "/31321/00000000";
                std::string url = ssurl.str();
                //std::string url("/cgi-bin/myCGI/sr-guilds.cgi/WOS/create/0/00000001.Samsyn/31321/00000000");
                hSession = InternetOpen("wosPost",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
                hConnect = InternetConnect(hSession, "207.57.118.86",INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
                hRequest = HttpOpenRequest(hConnect, "POST", url.c_str(), NULL, NULL, NULL, 0, 1);
                HttpSendRequest(hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata));
                InternetCloseHandle(hSession);
                InternetCloseHandle(hConnect);
                InternetCloseHandle(hRequest);
                r

eturn TRUE;
                }
case joinr:
            {
                    GetDlgItemText(hwndDlg, guildj, Readguildj, sizeof(Readguildj));
                    GetDlgItemText(hwndDlg, namej, Readnamej, sizeof(Readnamej));
                    std::string fill = "00000";
                    int randomValue = rand() %899 + 100;
                    std::stringstream ss;
                    ss << "desc=Level 100 Emperor (Sword-User) age 80:23 (Evergreen) (PKer)&stat=Kills:4085, PKs:2503, Deaths:15, PKed:2830, Rating: 800&name=" << fill << randomValue << "." << Readnamej;
                    std::string sss = ss.str();
                    char frmdata[1500] ;
                    for(int i=0;i<1500;i++)
                    frmdata[i]=sss[i];
                    std::stringstream ssurl;
                    ssurl << "/cgi-bin/myCGI/sr-guilds.cgi/WOS/petition/" << Readguildj << "/" << Readnamej << "." << fill << randomValue << "/31321/00000000";
                    std::string url = ssurl.str();
                    //std::string url("/cgi-bin/myCGI/sr-guilds.cgi/WOS/create/0/00000001.Samsyn/31321/00000000");
                    hSession = InternetOpen("wosPost",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
                    hConnect = InternetConnect(hSession, "207.57.118.86",INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
                    hRequest = HttpOpenRequest(hConnect, "POST", url.c_str(), NULL, NULL, NULL, 0, 1);
                    HttpSendRequest(hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata));
                    InternetCloseHandle(hSession);
                    InternetCloseHandle(hConnect);
                    InternetCloseHandle(hRequest);
                    return TRUE;
                    }

Здесь в основном тот же код, закодированный с QT, который не лагает.

void MainWindow::on_Join2_clicked()
{
    QString Fill = "00000";
    int randomValue = rand() %899 + 100;
    QString inttostr;
    inttostr.append(QString("%1").arg(randomValue));
    QString guildslot = ui->GuildJ->text();
    QString NamexJ = ui->NameJ->text();
    QNetworkRequest request(QUrl("http://synthetic-reality.com/cgi-bin/myCGI/sr-guilds.cgi/WOS/petition/" + guildslot + "/" + Fill + inttostr + "." + NamexJ + "/31321/00000000"));
    request.setRawHeader("User-Agent", "wosPost");
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded; charset=UTF-8");
    QByteArray content = "";
    content += "desc=Level 100 Emperor (Sword-User) age 80:23 (Evergreen) (PKer)&";
    content += "stat=Kills:4085, PKs:2503, Deaths:15, PKed:2830, Rating: 800&";
    content += "name=" + Fill + inttostr + "." + NamexJ;
    QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
    networkManager->post(QNetworkRequest(request), content);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...