【发布时间】:2019-10-17 10:53:02
【问题描述】:
我看不懂函数的意思
size_t WriteCallback(char *contents, size_t size, size_t nmemb, void *userp)
{
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
我试图在 c++ 上运行简单的 curl 函数,以便在 ue4 中使用。 Curl 工作正常,但我正在尝试读取响应,将响应接收到字符串中,因为它有点 js ajax 的工作原理。
找到解决方案from here
在 xcode c++ 中工作正常
但在 ue4 中:
使用 std::string
((std::string*)userp)->append((char*)contents, size * nmemb);
/Users/Documents/Unreal Projects/curlTest/Source/curlTest/curlTestCharacter.cpp:114:7: error: no member named 'string' in namespace 'std'; did you mean 'cString'?
使用 cString :
((cString*)userp)->append((char*)contents, size * nmemb);
/Users/Documents/Unreal Projects/curlTest/Source/curlTest/curlTestCharacter.cpp:114:15: error: expected expression
试图找出原因,但不知道上面的功能,它是如何工作的,如果xcode运行良好那么,这是什么原因。匿名函数、指针和c++的一些特性?
如何更人性化或更轻松地使用此代码,以及如何处理错误?
没有数学,没有加法-减法,var或func,类或对象,如果这段代码是什么意思
((std::string*)userp)->append((char*)contents, size * nmemb);
由于我仍然没有发现如何像 ajax 那样简单地接收 curl 响应,这仍然可以工作,但它是如何工作的,我该如何使用它?
任何帮助,两天试图弄清楚,试图简单地运行我以前在命令行和php代码中使用的curl
【问题讨论】:
-
我认为
cString没有append方法。您需要查看文档并找到等效方法。 -
从错误信息中我猜
cString没有append方法。 -
您需要将
userp转换回它实际指向的对象类型。(char*)contents超级没必要。 -
@RichardCritten 我试图使用 std::string 但仍然有错误 "error: no member named 'string' in namespace 'std'; 你的意思是 'cString'" 。是否有 curl 选项只是为了接收作为内容的响应
-
我认为您缺少
#include <string>。
标签: c++ xcode curl unreal-engine4