VC++调用libcurl的VC库使用详解
1.开发环境。我这里环境是VC.net 2003+windows XP sp3.
2.下载官方库。地址:http://curl.haxx.se/download.html 搜索 Win32 - MSVC,下面有两个版本的库,一个是带ssl的,一个是不带ssl的。我把两个都下载了下来:
不带ssl的:vc.zip">http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip
带ssl的:http://curl.haxx.se/download/libcurl-7.19.3-win32-ssl-msvc.zip
3.解压缩。把下载后的两个zip包分别加压缩,我这里保存到E:source目录下面,两个目录分别是:
E:sourcelibcurl-7.18.0-win32-msvc
E:sourcelibcurl-7.19.3-win32-ssl-msvc
4.VC.net设置。
不带ssl的:工具-》选项-》项目-》VC++目录-》
平台默认是win32,选择显示以下文件的目录-》包含文件,添加新行:
路径选择为刚才解压缩的目录E:sourcelibcurl-7.18.0-win32-msvc目录下的include目录,全路径为:
E:sourcelibcurl-7.18.0-win32-msvcinclude
再选择库文件,添加新行:
路径设置为libcurl的存放目录,我这里设置为E:sourcelibcurl-7.18.0-win32-msvc。
如果使用ssl的包的话,那只需要替换为路径E:sourcelibcurl-7.19.3-win32-ssl-msvc即可。
5.新建win32项目.默认设置即可。我这里新建curl项目,默认curl.cpp文件中添加:
include头文件:
#include
引用库文件,:#pragma comment(lib, "libcurl.lib")
如果为ssl的包的话,则引用库文件为:#pragma comment(lib, "libcurl_imp.lib")
然后在man函数中添加代码:CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL,
"http://www.baidu.com/");
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
system("pause");
6.执行。因为直接使用VC的包,所以需要把相应的dll文件copy只项目目录下的debug目录下,要不会提示找不到dll。
不带ssl的包,只需拷贝libcurl存放路径下的libcurl.dll文件到debug目录即可。
包含ssl的包,需要拷贝libcurl目录下的所有dll文件到debug目录。
7.若为ssl的包的话,到这里可以正常执行,不包含ssl的包,这里执行则会报错:
没有找到zlib1.dll文件。
通过Google找到的zlib1.dll文件不能直接使用,仍然会报错:
无法定位序数55于zlib1.dll
这时,到http://gnuwin32.sourceforge.net/downlinks/zlib-bin-zip.php下载zib包,将dll文件拷贝至debug目录,程序即可正常执行了。
8,如果你生成release版本的程序,则相应的把dll文件copy至项目的release目录即可。
补充:软件开发 , C++ ,