2013年6月9日

軟體開發基礎開源程式庫 #1 - zlib

zlib 程式庫提供打包檔案與加解密的功能,是許多軟體的基礎元件,許多開源程式庫皆使用並已內含於專案檔案中。

透過官網可下載取得zlib原始碼與執行版本:
http://zlib.net/

研讀 zlib 原始碼與說明文件,練習編譯與使用 zlib,可學習到軟體專案的目錄架構編排方式。目前的版本已支援 64 bit,zlib 的跨平台程式碼、文件說明都是不錯的範例教材,值得想開發開源專案的朋友們學習。

如何用Visual Studio 2010 編譯ZLib Lib:
http://blog.sina.com.cn/s/blog_6e0693f70100sjgj.html

編譯好的Windows DLL:
http://www.winimage.com/zLibDll/index.html

2013年5月14日

3D程式開發準備(3D Programming Beginning) #2 OpenGL 程式庫編譯設定與四種可用資源(freeglut,SDL, Allegro, GLFW)



各種Open GL程式庫編譯環境設定:

GLUT與GLEW:  使用早期的 glew 與 freeglut 程式庫
   Setting up OpenGL, GLEW, and FreeGLUT in Visual C++
       
   亦可參考這篇...
   Compiling OpenGL Progams at Home Using Visual Studio


隨著OpenGL的版本與功能演進,可以用的程式庫資源如下...

freeglut - 支援 Windows
     http://freeglut.sourceforge.net

SDL - 支援 Windows, Linux, OSX
     http://www.libsdl.org/

Allegro - 支援 Windows, Linux, OSX, IOS(iPhone/iPad)
     http://alleg.sourceforge.net/

GLFW - 支援 Windows, Linux, OSX
      http://www.glfw.org/index.html

2013年4月15日

3D程式開發準備(3D Programming Beginning) #1 OpenGL 學習資源

OpenGL 學習資源

編譯環境設定:

  使用早期的 glew 與 freeglut 程式庫
   Setting up OpenGL, GLEW, and FreeGLUT in Visual C++
       http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/

   可參考第二篇相關文章" #2 OpenGL 程式庫編譯設定與四種可用資源(freeglut,SDL, Allegro, GLFW)"

線上網頁版電子書 :

   OpenGLBook.com (OpenGL 4.0) - A Free OpenGL Programming Book
       http://openglbook.com/the-book/

   OpenGL Insights - OpenGL, OpenGL ES, and WebGL community experiences
       http://openglinsights.com/

   GPU Gems 3 線上版
       http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html

   Learning Modern 3D Graphics Programming 網頁版
       http://www.arcsynthesis.org/gltut/

2013年3月12日

Visual Studio Express 與 Professional (專業版) 的差異


最近安裝了Visual Studio 2010 Express的軟體(C++, C#),想了解與專業版(Professional)的差異,於是編譯測試了一些程式碼範例。

Visual Studio C++ Express為例,我發現可產生Lib, DLL, EXE等檔案,也可以透過內附的 MASM ml.exe 編譯 x86 組合語言的 asm 程式,但只能產生32位元版本的程式檔案。
從 UI 介面上亦發現支援編譯產生 Mutl-Threaded 或 Open MP 的 Code

其他較清楚的差異說明資訊,終於在網路上發現微軟官方的說明,分享給大家參考。
(下次如果老闆或主管問為什麼要買專業版而不用免費版時,這些資訊就可以拿出來用。)

上述網頁中微軟的相關說明文字摘錄於下:

QVisual Studio Express Professional 以上版本的主要功能差異?

AExpress僅提供最基本開發功能供學習及上手用,Professional/Premium/Ultimate 主要是供專業開發者/企業及團隊開發用,因功能差異點很多,但對於專業開發者實務開發上,在此列出 Express 版的主要差異,
1. 有限的專案範本與專案類型的支援
Visual Studio Express 版大多內建於各式 Microsoft 開發套件 (SDK),例如 Visual Studio 2010 Express for Windows Phone 內建於 Windows Phone SDK 7.1。還有些是可以獨立安裝的,如開發 ASP.NET / ASP.NET MVC Visual Web Developer Express,或開發 Windows Form 應用程式的 Visual Basic Express, Visual C++ ExpressVisual C# Express
依據不同的用途,Express 版僅提供最基本的專案範本,從網路上下載的一些專案類型或程式碼範例很有可能無法開啟,原因可能是少了專案範本、項目範本,例如:安裝專案 (Setup Project)、單元測試專案、WCF 服務、SQL Server 報表應用程式、工作流程應用程式等。
除此之外,像是類別設計師 (Class Designer)、程式碼定義視窗 ( Code Definition Window ) 等則無法使用。
2. 缺少巨集功能
一般在開發專案時,會利用巨集功能處理一些重複性的編輯工作,在 Visual Studio 2010 Express 無法使用。
3. 缺少 Visual Studio 2010 擴充管理員 ( Add-Ins, Wizard, VSPackages … )
Visual Studio 2010 擴充管理員提供 Visual Studio 2010 的擴充能力,可以下載並安裝許多好用的免費元件、擴充套件及範本、範例程式等,使用 Express 版無法使用擴充管理員。
關於一些常用的擴充套件,可以參考 Visual Studio 2010 開發技巧文章  Visual Studio Gallery,可以找到很多非常實用的套件。
4. 缺乏版本控管及完整軟體生命週期管理機制
Visual Studio 2010 Professional / Premium/ Ultimate 內建了與 Team Foundation Server (TFS) 伺服器整合的相關功能,但是在 Visual Studio 2010 Express 裡是不支援的。
5. 偵錯工具(Debugging Tools)
偵錯功能是開發過程中極其重要的功能,Visual Studio 2010 Express 裡有基本的功能,例如設定中斷點、單步執行、監看式視窗 (Watch Window)、本地變數視窗 (Local Window)、呼叫堆疊視窗 (Call Stack Window)、即時視窗 (Immediate Window)、輸出視窗 (Output Window) 等。
但還有一些常見的偵錯功能在 Visual Studio 2010 Express 並不提供,例如:附加至處理序 (Attach to process)、自動視窗 (Autos Window)、中斷點視窗 (Breakpoints Window)、呼叫瀏覽器 (Call Browser)JIT 偵錯 (Just-In-Time Debugging)
6. 單元測試 (Unit Test) - Express 版不提供單元測試功能
7. 64 位元程式開發  – Express 版不支援 64 位元應用程式開發
8. 若是 Web 開發者 - 下表列出 Visual Studio 2010 Professional 中可用的額外功能。更高階版本 – Premium Ultimate 亦包含 Professional 版的全功能,詳細功能比較,請參考 - Visual Studio 2010 版本比較表
功能
詳細資料
Web 控制項程式庫範本
Web 控制項程式庫專案範本可讓開發人員撰寫自訂的 Web 伺服器控制項。範本會加入建立控制項所需的專案項目,接著才能將控制項加入至任何 Web 專案。
Windows Presentation Foundation (WPF)
Windows Presentation Foundation (WPF) 提供統一的程式撰寫模型 (Programming Model),可為使用者建置豐富的 Windows 用戶端,在其中整合 UI、媒體和文件。
ASP.NET Crystal Reports
Crystal Reports Visual Studio 的報表工具,可讓開發人員建立互動、具簡報品質的內容。
SQL Server Compact Edition
SQL Server Compact Edition 是一款免費且容易使用的內嵌式資料庫引擎,可讓您建置穩固的 Windows 桌面及行動應用程式,以在所有 Windows 作業系統 (包括 Windows XPVistaPocket PC 以及 Smartphone) 上執行。
其他XML 功能
Visual Studio 包含 XML 支援,例如:
·         XSLT 偵錯工具。
·         XSD 結構描述設計工具。
·         XML 執行個體建立 XML 結構描述的能力。
·         XML 編輯器檢視 XSLT 輸出的能力。
·         編輯 XSLT 樣式表時的智慧驗證支援。
·         用於 XML 編輯的即時線上工具列。
其他程式碼編輯功能
Visual Studio 包含其他程式碼相關功能,例如 [程式碼定義] 視窗和更多的重構 (Refactoring) 支援。
[程式碼定義] 視窗是唯讀的編輯器檢視,可顯示使用中專案儲存在程式碼檔案中或加以參考之符號的定義。
重構 (Refactoring) 是在程式碼撰寫之後,藉由變更程式碼內部結構來改善程式碼的程序,這項程序不會變更程式碼的外部行為。
其他建置支援
Visual Studio 包含其他建置支援,包含定義建置前和建置後命令的功能、強式名稱簽署,與程式碼存取安全性 (CAS) 設定。
其他程式碼撰寫公用程式
Visual Studio 包含其他程式碼撰寫公用程式,例如原始檔控制的整合支援。它同時含轉換公用程式,可將 Visual Basic 6.0 專案轉換為 Visual Studio 中的 Visual Basic 專案。

2013年3月11日

Visual Studio C++ 2010 編譯設定參考


Visual Studio C++ 2010 編譯設定參考

  Solution Explorer 下 點選 Solution項目按右鍵選 Properties
    Property Pages 視窗
      Configuration Properties (Debug Version之$(Configuration)為Debug)
         General
            Output Directory => $(ProjectName)$(Configuration) (所設定之值存入$(OutDir) )
            Intermediate Directory => $(ProjectName)$(Configuration)\tmp
            Target Name => $(ProjectName)
         C/C++
           General
             Additional Include Directories => (#include 檔案的路徑,使用$(SolutionDir)要注意 sln檔所在的目錄,若需 include外部 lib,需加入相關 header檔的路徑。程式中的 #include 後的 header檔名內盡量不用相對路徑或絕對路徑,減少因程式或所使用參數之目錄發生異動,造成無法 include到正確路徑的 header檔。)
         Linker  (執行檔或DLL檔)
           General
             Output File => $(OutDir)xxx.exe ($OutDir為前面"Output Directory"所設定之目錄)
             Additional Library Directories => (設定所需其他 lib 檔 的目錄集合,編譯後產生的 lib檔可統一集中手動複製到專案目錄下的"Lib Debug"或"Lib Release"供其他程式專案使用)
           Input
             Additional Dependencies => (放入所要連結的外部 lib檔案名稱,若Debug版與Release版檔名不同,則需注意設定正確。)

         Librarian  (Lib檔)
           General
             Output File => $(OutDir)xxx.lib ($OutDir為前面"Output Directory"所設定之目錄)
             Additional Dependencies => (意義同上)
             Additional Library Directories => (意義同上)

2013年1月8日

Adobe CS2 軟體組合於官網提供下載

Adobe 描述 CS2產品啟用伺服器因技術問題無法於新的作業系統上使用,官網出現下載這些產品的網頁。

這次提供下載 Adobe CS2 的軟體包括:
Creative Suite 2(Windows、Mac)
Acrobat 3D 1.0 for Windows
Acrobat Standard 7.0(Windows、Mac)
Acrobat Pro 8.0(Windows、Mac)
Audition 3.0(Windows)
GoLive CS2(Windows、Mac)
Illustrator CS2(Windows、Mac)
InCopy CS2(Windows、Mac)
InDesign CS2(Windows、Mac)
Photoshop CS2(Windows、Mac)
Photoshop Elements 4.0/5.0(Windows、Mac)
Adobe Premiere Pro 2.0(Windows)

Adobe官方下載軟體頁面(無須註冊,網頁上已提供序號)
   http://www.adobe.com/downloads/cs2_downloads/index.html

可參考介紹文章:
   http://www.freegroup.org/2013/01/adobe-photoshop-illustrator-acrobat-indesign-cs2-for-free/#.UOvH0uSt_Xf

不知在Windows 7/8上可否正常執行?

至於是否屬於免費使用,官方原意應是提供原有CS2授權使用者繼續使用的服務,所以無授權的企業或商業使用應該是不行的。那個人在家庭的學習使用而不做商業用途呢?就請大家自行解讀了...

可參考如下iThome 2013-01-08 新聞"Adobe:CS2 公開序號是為繼續服務舊版客戶"
新聞中提到...


對於目前在網路上盛傳的Adobe免費提供CS2及Acrobat 7等軟體與啟用序號的消息,Adobe周一(1/7)發表聲明表示,這是為了服務老客戶。因此,若未購買授權的企業,切勿下載並安裝。 
......
所以,雖然使用者能夠透過官網免費下載Adobe這些舊版軟體,並取得軟體的啟用序號,但並不意謂著企業可以自由免費下載使用。若企業未購買合法授權,那麼很可能被視為侵權。所以建議原先誤以為這是Adobe免費贈送而安裝的使用者,盡快移除電腦上的軟體安裝以免觸法。