Windows Xp - 无法找到入口点 gettickcount64 kernel32.dll
Posted
技术标签:
【中文标题】Windows Xp - 无法找到入口点 gettickcount64 kernel32.dll【英文标题】:Windows Xp - entry point gettickcount64 could not be located kernel32.dll 【发布时间】:2019-01-04 13:06:56 【问题描述】:我使用 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;
那么,如何解决这个错误?请帮忙。提前致谢。
【问题讨论】:
您自己构建了libcurl
还是使用了预构建的?
我用的是预建的。
【参考方案1】:
来自[MS.Docs]: GetTickCount64 function(要求部分):
支持的最低客户端 Windows Vista [桌面应用 | UWP 应用]
替代方案:
不要在XP上运行(MS不再支持),切换到有该功能的Vista(或更新版本)在kernel32.dll中(这是最明显的)如果您使用的是下载的 curl(预构建)库:
使用与您的应用相同的工具重建它,和:
#define _WIN32_WINNT 0x0501
将/D_WIN32_WINNT=0x0501
传递给编译器
【讨论】:
我正在尝试在 XP 上运行游戏,但遇到与本文标题相同的错误。经过一番搜索,我发现游戏文件夹中有一个名为 libcurl.dll 的文件,它调用了这个函数。我试图下载这个与 XP 兼容的二进制文件,但我不知道该怎么做。你能帮帮我吗? @Kobayashi:您需要覆盖(首先备份)您项目中调用此函数的 libcurl.dll 文件。【参考方案2】:我猜你已经使用了网站下载部分中libcurl
的预构建版本。我自己从来没有遇到过这个问题,但是由于GetTickCount64
是Windows Vista+ API,这意味着他们没有编译兼容Windows XP的库。
尝试自己构建库,然后查看您的程序运行是否有任何问题。
【讨论】:
以上是关于Windows Xp - 无法找到入口点 gettickcount64 kernel32.dll的主要内容,如果未能解决你的问题,请参考以下文章