windows下用vs2008和boost结合编译程序
windows下用vs2008和boost结合编译程序
vc6.0和boost结合出现很多错误
使用asio子库中一个http server的示例程序,代码在libs\asio\example\http\server目录下。
1. 下载boost源文件
http://sourceforge.net/projects/boost/files/boost/1.46.0/
2. 下载boost编译管理工具bjam,它调用系统安装的编译器编译源程序
http://sourceforge.net/projects/boost/files/boost-jam/3.1.18/boost-jam-3.1.18-1-ntx86.zip
3. 假设boost的压缩文件解压到F:\boost,boost-jam解压到F:\boost-jam
打开命令提示符,
F:
cd F:\boost
F:\boost-jam\bjam.exe install
这样会编译并安装boost库到C:\boost
4. vs2008中打开菜单Tools->Options->Projects and Solutions->VC++ Directories
在Include files中增加C:\Boost\include
在Library files中增加C:\Boost\lib
5. 新建vs 2008 MFC Application项目mfc2008_boost1,
使用Release配置
Project->Project Properties...->Configuration Properties->C/C++->Precompiled Headers中设置Create/Use Precompiled Header为Not Using Precompiled Headers,即不使用预编译头,否则编译boost示例程序出现预编译错误。
6. 复制boost源码中libs\asio\example\http\server下所有hpp, cpp文件到项目代码目录
7. 编辑mfc2008_boost1Dlg.cpp。
这是增加的代码,从win_main.cpp中复制。
#include "stdafx.h"
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include "server.hpp"
#include "mfc2008_boost1.h"
#include "mfc2008_boost1Dlg.h"
Cmfc2008_boost1Dlg类中增加一线程函数:
unsigned int Cmfc2008_boost1Dlg::Thread1(LPVOID param)
要增加及修改代码:
boost::function0<void> console_ctrl_function;
BOOL WINAPI console_ctrl_handler(DWORD ctrl_type)
{
switch (ctrl_type)
{
case CTRL_C_EVENT:
case CTRL_BREAK_EVENT:
case CTRL_CLOSE_EVENT:
case CTRL_SHUTDOWN_EVENT:
console_ctrl_function();
return TRUE;
default:
return FALSE;
}
}
unsigned int Cmfc2008_boost1Dlg::Thread1(LPVOID param)
{
try
{
// Initialise server.
http::server::server s("localhost", "88", "F:\\"); //本地88端口监听,访问根目录为F:\
// Set console control handler to allow server to be stopped.
console_ctrl_function = boost::bind(&http::server::server::stop, &s);
SetConsoleCtrlHandler(console_ctrl_handler, TRUE);
// Run the server until stopped.
s.run();
}
catch (std::exception& e)
{
std::cerr << "exception: " << e.what() << "\n";
}
return 0;
}
8. OnInitDIalog中增加线程创建代码:
AfxBeginThread(Thread1, NULL);
9. 删除win_main.cpp
10. 按F7编译项目。Ctrl+F5运行
11. 浏览器打开http://localhost:88/,出现404错误提示,这说明服务已经启动。输入 http://localhost:88/+"F:\ 下文件名" 可访问。
编译boost需要很长时间,有网站制作了编译好的boost库,www.boostpro.com
下载安装程序,按提示选择编译环境和需要的库安装。
windows下用vs2008和boost结合编译程序的更多相关文章
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...
- 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...
- Windows下用Mingw编译Boost.Regex库
下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...
- boost库在windows下的编译和使用
因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...
- boost在windows下的编译(vs2010)
首先说下环境,win7,vs2010. 先在http://www.boost.org/users/download/上下载boost安装包,我下的是1.52.0版. 按照说明,直接运行“bootstr ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- Windows下如何使用BOOST C++库 .
Windows下如何使用BOOST C++库 我采用的是VC8.0和boost_1_35_0.自己重新编译boost当然可以,但是我使用了 http://www.boostpro.com/produc ...
- [分享]PY的Boost自动编译程序 1.1 根据环境自动编译
Python写的Boost自动编译程序 1.1 改进: 根据自己的环境筛选出已安装环境,并列出 环境提供选择. 支持X64位的自动参数编译. 可以选择编译的参数,其他版本持续改进中 自动编译自动安装到 ...
- windows下搭建nginx-rtmp服务器
windows下搭建nginx-rtmp服务器 windows下搭建nginx-rtmp服务器 准备工作 安装MinGW 安装Mercurial 安装strawberryperl 安装nasm 下载n ...
随机推荐
- iOS程序的加载过程
1.执行main函数2.执行UIApplicationMain函数1> 创建一个UIApplication对象(UIApplication是整个程序的象征)一个应用只有一个application ...
- Base64加密解密
/// <summary> /// 实现Base64加密解密 /// </summary> public sealed class Base64 { /// <summa ...
- WCF websocket
WebSocket, like as TCP, is a bi-directional, full-duplex communication channel over a single TCP con ...
- 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】
视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...
- 本地开发时同时启动多个tomcat服务器
1.环境变量中不要设置CATALINA_HOME: 2.分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口(默认为 8080端口),将8080修改为tomcat ...
- Js与flash交互:在html页面中用js与MyReport插件交互
Html页面与flash的加载 如下图,flash是html页面的一个插件节点. js与flash进行交互,首先要处理好html页面和swf的加载问题. Swf调用外部js方法,要确保js方法已存在, ...
- WordPress插件制作教程(二): 编写一个简单的插件
上一篇说到了如何创建一个插件,我想大家看了之后一定会有所收获,这一篇简单给大家写一个插件样例,让大家有一个基本的印象.这个插件的样例就是当你激活这个插件后会在你的每篇文章中插入一段自己定义好的内容,比 ...
- Office2007设置无格式粘贴
打开Word 2007,按Alt+F11.这时会出现一个Visual Basic编辑窗口.如图所示: 上图中左上方,鼠标右击Normal→插入→模块,出现下图: 双击"模块1&q ...
- 在VS里面查看lua堆栈
extern std::string get_lua_stack(void); std::string stack = get_lua_stack(); std::string get_lua ...
- 收集点小文,讲CGI,FASTCGI,PHP-CGI,PHP-FPM之间通透点的文章
http://blog.csdn.net/meegomeego/article/details/36180343 http://www.opsers.org/linux-home/server/php ...