本文主要是介绍win7+vs2012编译、使用libcurl获取网页源代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文摘自:http://blog.csdn.net/zengraoli/article/details/9189449
编译环境win7 64 bit + vs2012
一、下载libcurl
直接下载
http://curl.haxx.se/download/curl-7.21.3.zip
vs2012打开解压目录的vc6curl.dsw
生成得到dll
二、写一个测试项目
在当前目录下写一个测试项目
test_libcurl
1、配置
配置一下工程属性(都为.\DLL-Debug\):
附加包含要也要设置一下(..\lib;..\include;.;%(AdditionalIncludeDirectories)):
附加库路径要指定一下(..\lib\DLL-Debug;%(AdditionalLibraryDirectories)):
附加依赖项加入(libcurld_imp.lib):
添加一下项目依赖:
2、加入代码
加入以下测试代码:
- // test_libcurl.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <io.h>
- #include "curl/curl.h"
- #define POSTURL "http://www.hao123.com"
- #define FILEPATH "D:\\temp.txt"
- //这是libcurl接收数据的回调函数,相当于recv的死循环
- //其中stream可以自定义数据类型,这里我传入的是文件保存路径
- static size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream )
- {
- int len = size * nmemb;
- int written = len;
- FILE *fp = NULL;
- if ( _access( (char*)stream, 0 ) == -1 )
- {
- fp = fopen( (char*) stream, "wb" );
- }
- else
- {
- fp = fopen( (char*) stream, "ab" );
- }
- if (fp)
- {
- fwrite( ptr, size, nmemb, fp );
- }
- return written;
- }
- int GetUrl( const char *url, char *savepath )
- {
- CURL *curl;
- CURLcode res;
- struct curl_slist *chunk = NULL;
- curl = curl_easy_init();
- if ( curl ) {
- curl_easy_setopt( curl, CURLOPT_VERBOSE, 0L );
- curl_easy_setopt( curl, CURLOPT_URL, url );
- //指定回调函数
- curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback);
- //这个变量可作为接收或传递数据的作用
- curl_easy_setopt( curl, CURLOPT_WRITEDATA, savepath );
- res = curl_easy_perform( curl );
- if (res == CURLE_OK)
- {
- return 1;
- }
- return 0;
- }
- return 0;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- if ( GetUrl(POSTURL, FILEPATH) )
- {
- printf( "OK\n" );
- }
- return 0;
- }
3、编译执行
设置test_libcurl为启动项目
编译、执行:
因为使用了旧版本的fopen,所以需要在预处理器中加入_CRT_SECURE_NO_WARNINGS
再次编译执行:
把在libcurl项目中生成的这个dll放到test_libcurl\DLL-Debug中(其实是可以不放直接用项目的形式链接过去的),暂时不知道怎么弄,所以。。只能先这样拷贝过去
4、调试
做一个断点
F11就进去了
这样就可以跟踪调试libcurl了……
5、看看demo的结果:
hao123.com网页的源代码被下载下来了
整个工程连带curl源代码下载地址:http://download.csdn.net/detail/zengraoli/5659137
这篇关于win7+vs2012编译、使用libcurl获取网页源代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!