Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ libcurl curl\u easy\u setopt long参数传递不正确-va_arg(param,long)_C++_Visual Studio 2010_Visual Studio_Libcurl - Fatal编程技术网

C++ libcurl curl\u easy\u setopt long参数传递不正确-va_arg(param,long)

C++ libcurl curl\u easy\u setopt long参数传递不正确-va_arg(param,long),c++,visual-studio-2010,visual-studio,libcurl,C++,Visual Studio 2010,Visual Studio,Libcurl,有可能知道一些关于它的libcurl专家吗 我注意到这一点,因为我无法关闭libcurl VERBOSE: curl_easy_setopt(curl, CURLOPT_VERBOSE, 0L); 当我将调用跟踪到libcurl中时,我发现0L(long)被转换成一个非零值,导致VERBOSE始终处于打开状态。我还没有尝试过,但我很确定任何长参数都不会正确传递 data->set.verbose = (0 != va_arg(param, long))?TRUE:FALSE; 在哪里

有可能知道一些关于它的libcurl专家吗

我注意到这一点,因为我无法关闭libcurl VERBOSE:

curl_easy_setopt(curl, CURLOPT_VERBOSE, 0L);
当我将调用跟踪到libcurl中时,我发现0L(long)被转换成一个非零值,导致VERBOSE始终处于打开状态。我还没有尝试过,但我很确定任何长参数都不会正确传递

data->set.verbose = (0 != va_arg(param, long))?TRUE:FALSE;
在哪里

但我不确定这些人在做什么。
为什么会发生这种情况以及如何解决

我使用VisualStudio 2010 C++,用LIbCURL7.27.0

< P> <代码> VAujARG()>代码>使用指针算法从您的代码> VAYLISH PARAM/<代码>中提取0L。您可以在
va_列表
类型或上阅读更多内容。将0L转换为非零数字是而不是

在打开连接之前,尝试调用curl\u easy\u setopt()。文档中指出,您的详细设置是“设置一次,以用于多个独立连接”(urldata.h ln 1537)

如果您仍然认为它不起作用,可以将CURL*转换为会话句柄*,并在调试器中检查它,例如:

struct SessionHandle *data = reinterpret_cast<SessionHandle*>(curl);
// Inspect data->set.verbose
struct SessionHandle*data=reinterpret\u cast(curl);
//检查数据->set.verbose

您可以在urldata.h中找到SessionHandle的定义。

谢谢Scotty!关于va_last和va_args的非常有用的帖子。SessionHandle是一个很好的技巧,所以我现在可以检查curl的状态。我仍然无法关闭冗长,但这可能是另一个问题。我确实移动了调用(就在创建CURL handle之后),但仍然没有运气。不知道这是否是因为我没有在调试时每次调用global_cleanup。
struct SessionHandle *data = reinterpret_cast<SessionHandle*>(curl);
// Inspect data->set.verbose