繁体   English   中英

Windows Xp-找不到入口点gettickcount64 kernel32.dll

[英]Windows Xp - entry point gettickcount64 could not be located kernel32.dll

我已经使用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;
}

那么,如何解决该错误呢? 请帮忙。 提前致谢。

[MS.Docs]:GetTickCount64函数 (“ 需求”部分):

支持的最低客户端 Windows Vista [桌面应用程序| UWP应用]

备择方案:

  • 不要在XP上运行它( MS不再支持它),切换到具有kernel32.dll功能的Vista (或更新版本)(这是最明显的一个)
  • 如果您使用的是下载的curl (预构建)库:

    • 重建它使用相同的工具为您的应用程序, 并且

      • #define _WIN32_WINNT 0x0501

      • /D_WIN32_WINNT=0x0501传递给编译器

  • 如果直接包含curl资源,请在VStudio项目中指定上述编译器标志( [MS.Docs]:/ D(预处理程序定义)
  • 浏览官方下载页面( [curl]:Releases and Downloads )时, 我发现 [WinampPlugins]:curl 7.53.1 for Windows 因此,显然可以下载与XP兼容的二进制文件。 它是一个较旧的版本,并且只有32位 (无论如何很少使用64位 XP ),但是它可以助您一臂之力

我猜您已经从站点的“下载”部分使用了libcurl预构建版本。 我本人从未遇到过此问题,但是由于GetTickCount64是Windows Vista + API,这意味着它们尚未编译具有Windows XP兼容性的库。

尝试自己构建库,然后查看程序是否运行有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM