Winforms microsoft visual studio中的输出

Winforms microsoft visual studio中的输出,winforms,curl,c++-cli,Winforms,Curl,C++ Cli,我正在制作一个应用程序,它使用libcurl显示php页面的输出 在终端模式下,该应用程序运行良好 CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "www.sglroostermail.nl/api/getChanges.php?y=1); res = curl_easy_perform(

我正在制作一个应用程序,它使用libcurl显示php页面的输出 在终端模式下,该应用程序运行良好

CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "www.sglroostermail.nl/api/getChanges.php?y=1);
        res = curl_easy_perform(curl);

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
但现在我想做一个gui应用程序。 对于GUI,我使用microsoft visual studio 2015-->CLR empty project
但是终端代码给出了自己的输出 我想在文本框或标签中显示输出
例如:(这是MYForm.h的一部分

#pragma endregion
private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
}
private: System::Void textBox1_TextChanged_1(System::Object^  sender, System::EventArgs^  e) {

}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    String ^ klas = textBox1->Text;
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "www.sglroostermail.nl/api/getChanges.php?y=", klas);
        res = curl_easy_perform(curl);

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
}

有人能告诉我如何将第一个代码的输出存储在变量、标签或文本框中吗?

您需要告诉libcurl如何处理从远程服务器接收的输出

这里有两个选项可供使用:

  • :这告诉libcurl在接收数据时调用哪个函数
  • :这是一个
    void*
    ,将传递给write函数
默认情况下,它们被设置为
fwrite
stdout
,这就是libcurl将输出写入终端的原因。(注意:选项名为“写入”,因为常见的操作是下载文件并将其写入磁盘。请将其视为在收到数据后如何处理数据,不要将其视为从服务器“读取”。)

如果您想捕获数据,我会做以下几点:

  • 分配某种容器:拥有一个字节缓冲区,并将CURLOPT_WRITEDATA设置为指向该缓冲区的指针
  • 创建一个方法将数据复制到缓冲区,并将其设置为CURLOPT_WRITEFUNCTION

由于libcurl是一个非托管库,我将使用
std::vector
作为缓冲区。写回调必须具有原型
size\t write\u回调(char*ptr、size\t size、size\t nmemb、void*userdata);
,我认为处理非托管向量比固定托管缓冲区更容易&正确处理它。

C++/CLI有自己的标记,我已经改为使用该标记和winforms标记。您可以用硬方法或简单方法来完成。我推荐使用WebClient::DownloadString()这一简单方法谢谢你的回复,我只是不知道所有关于缓冲区的事情,你能举个例子吗?