win7+vs2012编译、使用libcurl获取网页源代码

17 篇文章 0 订阅

编译环境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



在VS2013中编译libcurl时,需要使用OpenSSL和zlib。libcurl是一个功能强大的开源网络库,能够实现跨平台的HTTP、FTP、SMTP等协议的数据传输。 OpenSSL是一个开源的加密库,提供了各种加密算法和安全协议的实现,可以用于SSL/TLS的加密和解密通信。在编译libcurl时,需要将OpenSSL的头文件和库文件加入到VS2013的编译环境中。这样在编译libcurl时,可以使用OpenSSL提供的加密算法和安全协议进行网络通信的加密。 zlib是一个开源的数据压缩库,可以实现对数据的高效压缩和解压。在编译libcurl时,需要将zlib的头文件和库文件加入到VS2013的编译环境中。这样在编译libcurl时,可以使用zlib提供的数据压缩和解压功能,提高数据传输的效率。 在编译过程中,应首先确保已正确安装了OpenSSL和zlib,并设置了相应的环境变量。然后,在VS2013中创建一个新的项目,将libcurl源代码添加到项目中。接着,在项目属性中设置包含目录和库目录,指定OpenSSL和zlib的头文件和库文件的位置。 最后,进行编译和链接操作,生成libcurl的库文件和可执行文件。编译成功后,就可以在VS2013中使用libcurl的各种功能了。 总结来说,编译libcurl时需要使用OpenSSL和zlib,并确保已正确配置VS2013的编译环境,包含相关的头文件和库文件。完成配置后,就可以在VS2013中编译使用libcurl库了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值