下载最新的libevent,目前是

libevent-2.0.20-stable.tar.gz
修改“D:\libevent-2.0.10-stable\event_iocp.c”、“D:\libevent-2.0.10-stable \evthread_win32.c”、“D:\libevent-2.0.10-stable\listener.c”三个文件,在文件开头分别加上一 行:

#define _WIN32_WINNT 0x0500

在Makefile.nmake中的CFLAGS中加入/ZI选项,同时去掉/Ox优化选项,这样生成的lib库会带有调试信息

进入VS2010命令提示

切换到libevent的所在目录

nmake /f Makefile.nmake
编译成功生成
libevent.lib、libevent_core.lib、libevent_extras.lib
复制include 和libs
mkdir D:\libevent\include\
xcopy /E /H /R D:\libevent-2.0.16-stable\include\* D:\libevent\include\
xcopy /E /H /R D:\libevent-2.0.16-stable\WIN32-Code\* D:\libevent\include\
xcopy /E /H /R D:\libevent-2.0.16-stable\*.h D:\libevent\include\
mkdir d:\libevent\libs
copy D:\libevent-2.0.16-stable\*.lib D:\libevent\libs\

新建vs2010控制台项目并使用以下代码

#include <stdio.h>

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>

#include <event.h>
#include <evhttp.h>

void root_handler(struct evhttp_request *req, void *arg)
{
    struct evbuffer *buf = evbuffer_new();
    if(!buf){
        puts("failed to create response buffer");
        return;
    }

evbuffer_add_printf(buf, "Hello: %s\n", evhttp_request_uri(req));
    evhttp_send_reply(req, HTTP_OK, "OK", buf);
}

void generic_handler(struct evhttp_request *req, void *arg)
{
    struct evbuffer *buf = evbuffer_new();
    if(!buf){
        puts("failed to create response buffer");
        return;
    }

evbuffer_add_printf(buf, "Requested: %s\n", evhttp_request_uri(req));
    evhttp_send_reply(req, HTTP_OK, "OK", buf);
}

int main(int argc, wchar_t* argv[])
{
 struct evhttp *httpd;

WSADATA wsaData;
 DWORD Ret;
 if ((Ret = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0) {
  printf("WSAStartup failed with error %d\n", Ret);
  return -1;
 }

event_init();

httpd = evhttp_start("0.0.0.0", 18505);
    if(!httpd){
  return 1;
 }

evhttp_set_cb(httpd, "/", root_handler, NULL);
    evhttp_set_gencb(httpd, generic_handler, NULL);

printf("httpd server start OK!\n");

event_dispatch();

evhttp_free(httpd);

WSACleanup();
    return 0;
}

进入配置管理器,设置活动项目为release
C++
常规\附加包含目录 .\include;.\include\event2
代码生成\运行库 多线程 (/MT)
高级\编译为 编译为 C 代码 (/TC)
链接器
常规\附加库目录 .\libs
输入\附加依赖项 ws2_32.lib;wsock32.lib;libevent.lib;libevent_core.lib;libevent_extras.lib;%(AdditionalDependencies)
输入\忽略特定默认库 libc.lib;msvcrt.lib;libcd.lib;libcmtd.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)

转载于:https://www.cnblogs.com/toosuo/archive/2012/08/25/2655659.html

vs2010下libevent的使用相关推荐

  1. 【流媒體】jrtplib—VS2010 下RTP开源协议库JRTPLIB3.9.1编译

    [流媒體]jrtplib-VS2010下RTP开源协议库JRTPLIB3.9.1编译 SkySeraph Apr 7th 2012 Email:skyseraph00@163.com 一.JRTPLI ...

  2. vs2010下使用dmp文件和pdb文件调试时dump、exe和pdb三个文件要保持版本一致的原因

    一.pdb文件简介 英文:Program Data Base,即程序的基本数据,是 VS 编译链接时生成的文件. pdb文件主要存储了如下调试信息: (1)public,private 和 stati ...

  3. vs2010开发php,VS2010 下 开发C++

    VS2010 下 开发C++ 1, 导入头文件 #include 当打" 2, 枚举 enum 和 C# 中不同 例: enum type { a  = 1, b = 2, c = 3 }; ...

  4. 选择版本Win7系统VS2010下搭建qt开发环境

    这几周一直在研究选择版本之类的问题,下午正好有机会和大家共享一下. win7下vs2010搭建qt环境总算成功了,在此分享一下. 最初选择了VS2012 + qt-windows-opensource ...

  5. VS2010下配置OpenCV2.2

    VS2010下配置OpenCV2.2 1.       下载OpenCV2.2 安装 2.       我的安装路径是D:\Program Files\OpenCV2.2 3.       打开VS2 ...

  6. 在VS2010下利用vue开发团队项目

    开发一个项目,采用什么语言都可以,主要能熟练高效的开发都是合理的,这次我们采用vue来开发一个团队项目.在开始之前掌握vue的基本用法,如双向数据绑定.组件和路由等,建议先去看之前的文档(webpac ...

  7. OSG笔记一:在Win7、VS2010下配置OSG3.4

    在配置OSG初期找了很多相关的博文,内容都大同小异,且总与现在最新的版本有些出入,偏偏OSG这家伙编译一次的时间总是很长(有时候需要四.五个小时),失败了就很伤.在配置了不知道多少遍之后终于探索出了一 ...

  8. 推荐一个VS2010下的智能联想插件,比IntellSense更给力! http://bbs.itheima.com/thread-53922-1-1.html (出处: 黑马程序员IT技术论坛)

    推荐一个VS2010下的智能联想插件,比IntellSense更给力! http://bbs.itheima.com/thread-53922-1-1.html (出处: 黑马程序员IT技术论坛)

  9. C语言编译时无法打开文件,在VS2010下编译无法打开包括文件:“GL/glaux.h”: No such file or director...

    最近测试了一个OpenGL的示例程序: #include #include #include "glos.h" void main(void) { auxInitDisplayMo ...

  10. 在VS2010 下编译 cocos2d-x-2.1.4

    在VS2010 下编译 cocos2d-x-2.1.4 首先感谢 cocos2d-x 团队为我们做出这么好的跨平台框架,让我们这些码农省了很多时间,事半功倍. 里沃特最近在编译 win32 版本的时候 ...

最新文章

  1. linux 浏览器源码下载,Android开发:图片浏览器源码
  2. Docke的WEB管理工具
  3. Vc2003可以直接跑quake3
  4. Intelij IDEA 2016.3安装mybatis插件并激活教程
  5. 95% CI, 置信区间 Confidence Interval
  6. 《Python Cookbook 3rd》笔记(3.14):计算当前月份的日期范围
  7. linux 父子进程 资源_linux 父子进程 资源_实验4 Linux父子进程同步
  8. stm32 Flash读写[库函数]
  9. 利用opencv中的级联分类器进行人脸检測-opencv学习(1)
  10. 总结一下m3u8格式相关问题
  11. [AV1] Segment
  12. android手机黑科技软件,4款安卓手机黑科技APP,功能非常牛逼,希望大家谨慎使用...
  13. css文字右边加横线,CSS伪类before,after制作左右横线中间文字效果
  14. Python爬虫入门(四):实战,爬取4399小游戏首页
  15. 〖Python 数据库开发实战 - Python与Redis交互篇⑫〗- 综合案例 - 新闻管理系统 - 删除新闻(含redis缓存)
  16. 在intellij上运行java_如何解决无法在IntelliJ中运行java 11示例程序?
  17. matlab仿真磁滞回线,磁滞回线测量方法及Simulink仿真分析研究.pdf
  18. php socket_read 读取全部,PHP中socket_read的问题_php
  19. C语言高精度加法(含c++版)
  20. 如何修改网站标题和logo

热门文章

  1. django1.9 创建数据表
  2. SubLime Text 3 的常用插件
  3. 第八章、面向对象设计
  4. POJ分层练习题目列表
  5. UVa 621 - Secret Research
  6. 手机号码归属地查询练习
  7. HttpModule和HttpHandler的常见用法
  8. python+Django+test 测试数据库生成报错
  9. TiDB 源码阅读系列文章(九)Hash Join
  10. 简单的爬虫爬取教务网获取成绩