libcurl - 找不到过程入口点 CreateFile2
Posted
技术标签:
【中文标题】libcurl - 找不到过程入口点 CreateFile2【英文标题】:libcurl - The procedure entrypoint CreateFile2 could not be located 【发布时间】:2014-07-29 14:40:03 【问题描述】:我有一个 Visual Studio 2012 C++ 项目。我通过右键单击我的项目并选择管理 NuGet 包来安装 libcurl。
我正在尝试运行以下简单程序:
#include <stdio.h>
#include <curl\curl.h>
int main(void)
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl)
//I will do something
return 0;
当我运行它时,我收到以下错误:
这个解决方案:Calling any cURL function results in "entry point not found" when executing the program 向我指出了这个解决方案:Using the Windows 8 SDK to compile for Windows 7,它告诉我将我的 平台工具集 从 Visual Studio 2012 (v110) 更改为 Visual Studio 2012 - Windows XP (v110_xp)
但我仍然遇到同样的错误。
有人知道怎么解决吗?
【问题讨论】:
【参考方案1】:使用默认的“v110”/“v120”工具集通过 Visual Studio 2012/2013 构建时,您使用的是 Windows 8.x SDK。要支持 Windows 7,您只需设置 Preprocessor Define _WIN32_WINNT=0x0601 来表示支持 Windows 7 或更高版本,而不是默认的 0x0602 或 0x0603 表示支持 Windows 8 或更高版本。
见MSDN
如果您更改为“v110_xp”/“v120_xp”工具包,那么您使用的是 Windows 7.1A SDK,因为 Windows 8.x SDK 不支持 Windows XP。如果您想要 Windows XP 支持,您应该在此处将 _WIN32_WINNT 设置为 0x0501。一般来说,您不需要使用“v110_xp”/“v120_xp”工具集来定位 Windows 7。
这里更基本的问题是您可能根本没有构建 cURL 代码,因为您使用的是 NuGet。
首先尝试设置 _WIN32_WINNT 设置以查看 NuGet 包是否构建为支持低级 Win32 桌面应用程序。否则,发布 NuGet 时使用的 .libs 仅为 Windows 8.x 兼容性而构建——顺便说一句,在 Windows Store 应用程序而不是 Win32 桌面应用程序中使用它是必需的。也可以尝试从原项目网站http://curl.haxx.se/直接获取库自己构建
【讨论】:
以上是关于libcurl - 找不到过程入口点 CreateFile2的主要内容,如果未能解决你的问题,请参考以下文章