<b>“C++ increasingly means Visual C++” </b><b>- Scott Meyers</b>
< 文章的長度把握不是太好,被 CSDN 的系統裁減,是以接着再來 J >
接下來,我們需要編寫一些小的應用測試一下,簡單一點的 lexical_case :
使用下面的指令方式。
D:\boost2> cl /GX /MT /GR /EHsc lCase.cpp

複雜一點的多線程應用使用下面的指令方式:
thread.cpp 取自 C:\boost_1_30_0\libs\thread\example\ thread.cpp
D: \Boost2>cl /GX /MT /EHsc thread.cpp /link C:\boost_1_30_0\lib
s\thread\build\bin\boost_thread.dll\vc7\debug\runtime-link-static\threading-mult
i\boost_threadd.lib
還有一些例子是無法編譯或是有讓人難以了解的警告。
具體記錄在下面的兩個頁面中,你可以具體檢視一下,不僅 VC7, 甚至還有更多的其他 C++ 編譯器的情況。
<a href="http://boost.sourceforge.net/regression-logs/cs-vc71beta-links.html">http://boost.sourceforge.net/regression-logs/cs-vc71beta-links.html</a>
<a href="http://boost.sourceforge.net/regression-logs/cs-vc71beta-Version_1_30_0.html">http://boost.sourceforge.net/regression-logs/cs-vc71beta-Version_1_30_0.html</a>
http://boost.sourceforge.net/regression-logs/
接下來,還有接下來了嗎?回頭看看我們的已經走了很遠了,但願你用同樣的步伐在和我一起前進,最後我們來一起看一下 Biltz++ 吧,我已經沒有力氣在暢情漪動的介紹有關 Biltz 的有關故事和曆史了。必須承認這些類庫都是老字号的招牌類庫,是 C++ 社團的輝煌、是激情創造力的溢出,就這些足以讓 .NET 學一陣跟一程了 .NET 加油!
Download :最新版本 0.6 blitz-0.6.tar.gz (996K)
<a href="http://oonumerics.org/blitz/download/">http://oonumerics.org/blitz/download/</a>
<a href="http://sourceforge.net/project/showfiles.php?group_id=63961">http://sourceforge.net/project/showfiles.php?group_id=63961</a>
這就是 ISO/ANSI C++ 的厲害了,對于我這樣一個慕名而來,之前從未使用過任何其它版本的 Blitz++ 的 Visual Studio.NET 使用者來說,這有些困難了,是以這時候講 VC++.NET 強大優秀,一點用都沒有,我們需要的是資源是資訊,而不是手上拿着史前最強大的編譯器。還好有網絡,還好有 Google , Google 的偉大之處在于它能給你無比自信的不知所措尋找一個釋放的臨界,将你所有可能和不可能的期許化成無數個上一頁和下一頁,不要管它有多少,重要的是你相信你在點選某一個連結之後找到你所需要的 J 我想你也找得到,因為全世界所有讨論的 BlitZ++ 的人都在這裡 http://www.oonumerics.org/MailArchives/blitz-support/ ,除去不是對 Windows 平台感興趣的,真正讨論的不會有超過 20 人,你需要找到一個叫 Julian C. Cummings的人。
直接講我的步驟吧,網際網路上的故事先放在一邊吧 J
解壓這個檔案到根目錄,并且我假設你的 Blitz++ Library 是安裝在 C:\Blitz_0_6
如果 Blitz++ 安裝目錄不是 C:\Blitz_0_6 你需要手工的調整,設定 VC.NET 項目檔案中的 Additional Include Directories 為你的 Blitz++ 安裝目錄 (cl 的 /I 參數 ) ,之後 Remove C++ 源檔案中 globals.cpp ,重新加入你安裝目錄 \src 目錄中的這個檔案,然後編譯 Solution. 另外如果你的機器象我之前一樣安裝了 STLPort 請在 VS.NET 中調整它的 INCLUDE 順序,将其放在預設的 STL 庫後面。象下面這樣,如果編譯成功會在 \Blitz-VS.NET\Blitz-Library\blitz\Debug\ 目錄下産生一個 blitz.lib 。
這個庫檔案也包括你 Download 的 1.1M Zip 檔案裡,這樣你可以不自己編譯也能使用 Blitz++ Library.
完成這一部分之後,可以開始使用或測試一下, Blitz++ 提供了一個 Test Suite 專門測試其功能和編譯器的情況,在 C:\Blitz-VS.NET\Blitz-Testsuite\ 下面有一個 Blitz-Testsuite.sln,打開這個 Solution 裡面有 45 個 VC Project ,專門用來運作 C:\Blitz_0_6\testsuite 中的 .cpp ,你可以逐個編譯和運作一下,網上說其中有 4 個有問題,而我運作完好像隻發現一個。由于編譯後的檔案太大,是以 Download 的 Zip 檔案中隻帶了兩個,一個是 Include 使用 Blitz++ 的例子,一個是需要使用到我們編譯的 blitz.lib 的例子。總的來說,效果非常的不錯。
後記:
我隻能從資料上 (81%-87%-98%) 知道以前的 VC++ 的性能和情況,特别是有關 ISO C++ 标準的狀況,從我的經曆看來, Visual C++.NET 2003 相容程度非常的高,而且速度也非常的快,編譯完成整個四個類庫和上網尋找資料,我總共花了兩天時間(算起來和我寫并且釋出這兩篇文章的時間差不多),兩天期間我還抽空也編譯了 PETE 、 MTL 、 POOMA 這樣小一點不太有名的類庫,發現在 Visual C++.NET 2003 都可以編譯和使用。
事實上,目前很難找到,在一個平台,不用安裝什麼其他的庫(編譯所有的類庫我沒有安裝什麼 Java Runtime 、 Perl 、 Cyg-Win32 等等),第三方軟體而編譯和使用這麼多頂尖類庫的編譯器。另外我們還沒有考察 Visual C++.NET 對 .NET Framework 的支援部分,是以前面我對它用了“史前最強大的編譯器”,豪華而且也很友善,我想如果今天 Visual C++.NET 是一個 25歲的有志青年,我想也許他的下一目标應該是 Unix 或 Linux 平台。 ( 什麼那就是 Visual C++.NET 2004? --New features for the UNIX and Linux developer and Most ANSI/ISO conformant C++. Strong support for standard C++ in managed code , 啊,忘記忘記 ) 不管怎樣,你看得出我非常的喜歡這款 C++ 編譯器,況且它還和其它的 .NET 語言C#,VB.NET 在一起,即來之則用之,有時你是不得不用,有時你是因為喜歡是以用它 J
好了,最後附上一些 STL 的連結和資源,也許你會奇怪,為什麼會加這個在這裡?在第一篇的文章中我曾講過寫這個文章的原因,其實有一個很私人的原因,沒有講到,事情的最初是我想收集一些 STL 的資料,我和我的客戶都需要,不知道他們拿它作什麼,而我是準備鞏固和更深的學習一下 STL ,更全面的掌握一些概念和應用,你知道 2004 的 VS.NET 中的 .NET Framework 會帶有模闆和泛類程式設計,我說過我是一個 .NET 迷 J 。世界上的事情就是這麼奇妙,一個簡單的念頭最後演化成了用 Visual C++.NET 編譯 C++ 社團的四大名庫。如果沒有什麼冒犯和輕率之舉,我想整個的過程是一次非常有趣和快樂的體驗。祝你程式設計快樂,五一快樂。