您的当前位置:首页Cocos2d-x中libcurl库的使用(1)查看库的版本信息

Cocos2d-x中libcurl库的使用(1)查看库的版本信息

2020-11-09 来源:六九路网

使用如下代码,可检测Cocos2d-x中使用的libcurl库的版本信息 #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)#include ../cocos2d/external/curl/include/ios/curl/curl.h#endif#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include ../cocos2d/external/

使用如下代码,可检测Cocos2d-x中使用的libcurl库的版本信息

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#include "../cocos2d/external/curl/include/ios/curl/curl.h"
#endif

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "../cocos2d/external/curl/include/android/curl/curl.h"
#endif

int getVersion()
{
 CURLcode return_code;
 return_code = curl_global_init(CURL_GLOBAL_ALL);
 
 if(CURLE_OK != return_code)
 {
 log("init libcurl failed");
 return -1;
 }
 
 log("curl_version=%s",curl_version());
 curl_version_info_data *p = curl_version_info(CURLVERSION_NOW);
 log("curl_version_info_data = %u",p->version_num);
 curl_global_cleanup();
 return 0;
}

1、curl_global_init的参数flag

CURL_GLOBAL_ALL Initialize everything possible. This sets all known bits except CURL_GLOBAL_ACK_EINTR.

CURL_GLOBAL_SSL Initialize SSL

CURL_GLOBAL_WIN32 Initialize the Win32 socket libraries.

CURL_GLOBAL_NOTHING Initialise nothing extra. This sets no bit.

CURL_GLOBAL_DEFAULT A sensible default. It will init both SSL and Win32. Right now, this equals the functionality of the CURL_GLOBAL_ALL mask.

CURL_GLOBAL_ACK_EINTR When this flag is set, curl will acknowledge EINTR condition when connecting or when waiting for data. Otherwise, curl waits until full timeout elapses. (Added in 7.30.0)

2、curl_version_info_data结构体
typedef struct {
 CURLversion age; /* age of the returned struct */
 const char *version; /* LIBCURL_VERSION */
 unsigned int version_num; /* LIBCURL_VERSION_NUM */
 const char *host; /* OS/host/cpu/machine when configured */
 int features; /* bitmask, see defines below */
 const char *ssl_version; /* human readable string */
 long ssl_version_num; /* not used anymore, always 0 */
 const char *libz_version; /* human readable string */
 /* protocols is terminated by an entry with a NULL protoname */
 const char * const *protocols;

 /* The fields below this were added in CURLVERSION_SECOND */
 const char *ares;
 int ares_num;

 /* This field was added in CURLVERSION_THIRD */
 const char *libidn;

 /* These field were added in CURLVERSION_FOURTH */

 /* Same as '_libiconv_version' if built with HAVE_ICONV */
 int iconv_ver_num;

 const char *libssh_version; /* human readable string */

} curl_version_info_data;
3、curl_global_init初始化libcurl,CURL_GLOBAL_ALL会使libcurl初始化所有的子模块和一些默认的选项,这个一个比较好的默认值

4、curl_global_cleanup,释放资源,curl_global_init和curl_global_cleanup只能被调用一次。


显示全文