随着时代的进步科技的发展Visual Studio Boost版本也快速的简化与升级,下面我就对升级前和升级后的Visual Studio Boost,做一下自己的解析,希望能够对大家有帮助,在这里拿出来和大家分享一下。
并且我也希望能通过这几个小程序使读者能对Visual Studio Boost有一个初步的认识,并尽快加入Boost的用户行列。在写本文的时候,我所使用的环境是Windows XP Home Edition + Boost1.33.1 + Visual Studio .NET 2003 首先是从Boost的主页上下载相关的Boost的压缩包,我下载的是boost_1_33_1.zip,假定我们解压到D盘根目录。解压后的目录结构应该类似 boost_1_33_1<目录> -- boost <目录> -- doc <目录> -- libs <目录> -- more <目录> 等等这些目录和文件。
打开Visual Studio .NET 2003 选择菜单 工具-->选项-->项目-->VC++目录,在“包含文件目录”里,增加一行,如:D:\boost_1_33_1。这样你就可以使用大多数的Boost类库。现在我们来写一个小程序,感受一下Boost。
- #include <vector>
- #include <iostream>
- #include <boost/lexical_cast.hpp>
- using namespace boost ;
- using namespace std ;
- int main(int argc, char * argv[])
- {
- vector<int> v1;
- vector<int>::const_iterator ci_v1 ;
- int iLength = 0 ;
- while( iLength < 10 )
- {
- try
- {
- if ( iLength == 5 )
- v1.push_back(lexical_cast<int>("DukeJoe")) ;
- else
- v1.push_back(lexical_cast<int>(iLength));
- }
- catch(bad_lexical_cast &ex)
- {
- cout << ex.what()<< endl ;
- v1.push_back(-1);
- }
- iLength++ ;
- }
- cout << "vector --> " ;
- for ( ci_v1 = v1.begin() ; ci_v1 != v1.end() ; ci_v1++ )
- {
- cout << *ci_v1 << " " ;
- }
- cout << endl ;
- return 0 ;
- }
直接在VS2003里的包含目录加入Visual Studio Boost的目录后,绝大多数的类库就可以使用了,但还有少数的类库需要额外再生成对应操作系统的动态库,才可以使用。我们以Windows+VS2003为环境,以regex类库举例说明。
regex为我们提供了正则表达式功能,其中boost的regex支持perl语法,更极大的提升了我们使用正则表达式所产生的效果。但要想使用regex,我们需要生成相关的lib文件才可以。#t#
生成的步骤如下:开始 --> Microsoft Visual Studio.NET 2003 --> Visual Studio.NET 工具 --> Visual Studio.NET 2003 命令提示。使用这个命令提示符之后,VS就会为我们自动配置好VC环境。打开命令提示符之后,我们进入目录 D:\boost_1_33_1\libs\regex\build ,现在我们敲入 nmake /fvc71.mak 生成lib文件。生成lib文件之后,我们单独建一个文件夹,例如我建立的是d:\boost_libs,然后把所有的*.lib文件拷贝到这个目录。
然后我们打开VS2003,选择菜单 工具-->选项-->项目-->VC++目录,在“库文件”里加入目录d:\boost_libs,这样VS2003在链接时,就会搜索这个目录。