[C++]VS2005(VC8) 使用 Boost

简介:
測試環境:
[1] Widnows XP Professional
[2] Visual Studio 2005 Team Studio(VC8.0)
[3] WinCvs 1.3

1. 下載 Boost
  •   透過 CVS 下載最新版
      cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost login
    [詢問密碼時,直接輸入 Enter 略過]
    cvs -z3 -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost checkout boost
    cvs -d:pserver:anonymous@boost.cvs.sourceforge.net:/cvsroot/boost logout


2. 組態設定
  • 執行 C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat

3. 建置與安裝(* [boost] 表示 boost 的根目錄)
  •   執行 [boost]\tools\jam\build_dist.bat
  •   將 [boost]\tools\jam\src\boost-jam-3.1.14-1-ntx86\bjam.exe 複製到 [boost]\bjam.exe
  •   切換到 [boost]\ 執行 bjam "-sTOOLS=vc-8_0" install
  •   漫長的等待~~~~~~~~ 相關 header 與 lib 產生在 C:\Boost
  •  修改 C:\Boost\include\boost-1_35\boost\config\suffix.hpp 內容
    #  define BOOST_LIB_TOOLSET "vc80"
    成如下
    #  define BOOST_LIB_TOOLSET "vc"
    (或是將 c:\Boost\Lib\ 下的所有 *.lib 的 -vc- 取代為 -vc80- (如:bgl-viz-vc.lib -> bgl-viz-vc80.lib, boost_date_time-vc-1_35.dll -> boost_date_time-vc80-1_35.dll)否則程式在連結時會發生找不到 lib 的錯誤)
  • 將 C:\Boost\include\boost-1_35 加入 VC2005 的 Include 路徑
    • Tools | Options | Projects and Solutions | VC++ Directories
    • Show directories for: Include files
  • 將 C:\Boost\lib 加入 VC2005 的 Lib 路徑
    • Tools | Options | Projects and Solutions | VC++ Directories
    • Show directories for: Library files

4. 測試

//  正規表示法測試:信用卡號檢測
#include <boost/regex.hpp>
#include <iostream>

bool validate_card_format( const std:: string s)
{
         static  const boost::regex e("(\\d{4}[- ]){3}\\d{4}");
         return regex_match(s, e);
}

int _tmain( int argc, _TCHAR* argv[])
{
    std::cout << (validate_card_format("1111-1111-1111-2222")?"PASS":"Error") ;  //  PASS

     return 0;
}

//  計算兩個日期相差的天數
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>

using  namespace std;
using  namespace boost::gregorian;

int _tmain( int argc, _TCHAR* argv[]){
    date_duration dd = date(2000, 1, 1) - date(1900, 1, 1);
    cout << "The twentieth century had " << dd.days() << " days" << endl;  //  36524

    dd = date(2100, 1, 1) - date(2000, 1, 1);
    cout << "The twenty-first century will have " << dd.days() << " days" << endl;  //  36525   
 
     return 0;
}
目录
相关文章
|
6月前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
191 1
|
存储 程序员 编译器
4.1 C++ Boost 字符串处理库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
297 0
|
22天前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
43 0
|
6月前
|
存储 分布式计算 程序员
【C/C++ 序列化 】深入探索 Boost 序列化:从理论到实践的全面指南
【C/C++ 序列化 】深入探索 Boost 序列化:从理论到实践的全面指南
570 1
|
XML JSON 数据格式
4.8 C++ Boost 应用JSON解析库
property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML、Json 或者 INFO 格式的数据。 property_tree 可以提供一个轻量级的、灵活的、基于二叉数的通用容器,可以处理包括简单值(如 int、float)和复杂数据结构(如结构体和嵌套容器)在内的各种数据类型。它可以解析数据文件到内存中,然后通过迭代器访问它们。
103 0
|
存储 设计模式 Java
4.7 C++ Boost 多线程并发库
C++语言并没有对多线程与网络的良好支持,虽然新的C++标准加入了基本的`thread`库,但是对于并发编程的支持仍然很基础,Boost库提供了数个用于实现高并发与网络相关的开发库这让我们在开发跨平台并发网络应用时能够像Java等语言一样高效开发。 thread库为C++增加了多线程处理能力,其主要提供了清晰的,互斥量,线程,条件变量等,可以很容易的实现多线程应用开发,而且该库是可跨平台的,并且支持`POSIX`和`Windows`线程。
172 0
|
存储 编译器 文件存储
4.4 C++ Boost 数据集序列化库
Boost库提供了一组通用的数据序列化和反序列化库,包括archive、text_oarchive、text_iarchive、xml_oarchive、xml_iarchive等。可用于许多数据类型的持久化和传输。使用这些库,我们可以轻松地将各种数据类型序列化到文件或流中,并从文件或流中反序列化数据。
142 0
|
算法 编译器 数据处理
4.3 C++ Boost 日期时间操作库
当涉及到日期时间和目录的操作时,Boost提供了`boost::posix_time`库,该库可以实现日期时间的解析、格式化、差值计算等常见操作。此外,该库还提供了许多常见的时间表示方式,如`time_duration`表示时间长度,`ptime`表示时间点,以及`time_period`表示时间段等。
161 0
|
6月前
|
存储 Unix Linux
boost C++知识点(六)
boost C++知识点(六)
|
6月前
|
域名解析 网络协议 编译器
boost C++知识点(五)
boost C++知识点(五)