我正在使用VC ++ 2015(v140)和QT MSVC 2015.我的项目是32位(x86)并且libcurl按原样编译,我的意思是我刚刚从官方网站下载并编译它,没有OpenSSL或添加了其他花哨的扩展。
我试图运行的代码在这里:
#include <stdio.h>
#include <curl/curl.h>
#include <curl/easy.h>
#include <string>
class Essentials {
private:
CURL *curl;
CURLcode res;
public:
std::string SSLInternetConnection(char* url) {
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res == CURLE_OK) {
return "CONNECTED";
}
else {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
return curl_easy_strerror(res);
}
}
}
};
我从创建对话框的函数中调用它,然后将结果写入对话框中的标签。
#include <QtWidgets/QDialog>
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <DH_loginView.h>
#include <chrono>
#include <thread>
#include "Essentials.cpp"
class Dialogs {
public:
void loginDialog(const QString uname, QMainWindow *a) { // this function is where I'm calling the curl lib.
Ui::loginView loginViewer;
loginViewer.setupUi(a);
Essentials e;
std::string asd = e.SSLInternetConnection("http://google.com/");
QString aaa = QString::fromStdString(asd);
loginViewer.label->setText(aaa);
//QString utf8Dialog = uname + QStringLiteral(" kullanıcısı giriş yapıyor");
a->setWindowTitle(aaa);
}
void loginErr1() {
QMessageBox mbox;
QSpacerItem* horizontalSpacer = new QSpacerItem(500, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
mbox.setWindowTitle("HATA");
QGridLayout* layout = (QGridLayout*)mbox.layout();
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
mbox.setText(QStringLiteral("Kullanıcı adı ve şifre boş olamaz!"));
mbox.exec();
}
};
问题是,我的电脑上的每个应用都可以访问http://google.com。但是,我过去常常无法解析主机名&#34;错误一段时间,当我今天打开我的电脑时,它抛出了一个不同的错误。我不知道为什么会这样,因为我在php上使用curl多年了,我承认这个问题是我所知道的,因为我是C ++的新手。
感谢您的帮助!