我已经使用Curl库(Cpp编程)创建了HTTP POST请求。
配置:
Visual studio 2017
Platform Toolset : Visual Studio 2015 - Windows XP (v140_xp)
当我在Windows XP系统上运行exe时,会引发以下异常:
the procedure entry point gettickcount64 could not be located kernel32.dll
我的代码:
#include <curl/curl.h>
int main()
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "xxxxxx");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n\t\"UserName\":\"abc\", \n\t\"Password\":\"xyz\"\n}");
CURLcode ret = curl_easy_perform(curl);
curl_easy_cleanup(curl);
return 0;
}
那么,如何解决该错误?请帮忙。预先感谢。
答案 0 :(得分:2)
我想您已经从网站的“下载”部分使用了libcurl
的预构建版本。我自己从来没有遇到过这个问题,但是由于GetTickCount64
是Windows Vista + API,这意味着他们还没有编译具有Windows XP兼容性的库。
尝试自己构建库,然后查看程序是否运行有任何问题。
答案 1 :(得分:1)
来自[MS.Docs]: GetTickCount64 function(要求部分):
支持的最低客户端 Windows Windows Vista UWP应用]
替代品:
如果您使用的是下载的 curl (预构建)库:
使用与您的应用相同的工具来重建它,和之一:
#define _WIN32_WINNT 0x0501
将/D_WIN32_WINNT=0x0501
传递给编译器