2007/04/29

wxWidgets + Visual C++2005 + wxDev-C++ 第一次安裝

首先當然需要下載相關軟體:
Visual C++2005 Express Edition + Platfrom SDK for Windows Server 2003 R2
WxWidgets 目前最新版 2.83 下載 exe 版或是 zip ,exe 會幫你電腦設定 WXWIN 目錄。
wxDev-C++ 目前最新版本 6.10-2

Visual C++ 2005 請先安裝,wxDev-C++ 可以選擇 2005 的編輯器。



第一步: 2005 + Platfrom SDK設定步驟
http://www.microsoft.com/taiwan/msdn/express/visualc/usingpsdk/default.mspx
(1)在ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\".中我沒有1033的目錄於是改1028的目錄中的 AppSettings.htm 也是可行的。
(2)要用NotePad 等文字編輯器編輯 不可用 2005 會出現錯誤訊息。


第二步:
(1)設定WXWIN 系統變數 目錄:
我的電腦->內容->進階->環境變數->系統變數->新增->
變數名稱:WXWIN
變數值:安裝 WxWidgets 的目錄。


(2)Visual 2005 中設定 相關目錄:
工具->選項->專案和方案->VC++目錄
顯示目錄->Include 檔案
新增:
$(WXWIN)\include
$(WXWIN)\contrib\include

顯示目錄->程式庫檔
新增:
$(WXWIN)\lib\vc_lib
$(WXWIN)\contrib\lib


顯示目錄->原始程式檔
新增
$(WXWIN)\src

以下用 (WXWIN) 代表文中WxWidgets所安裝的目錄


第三步:使用 Visual C++ 2005編譯WxWidgets
開啟專案->(WXWIN)\build\msw\wx.dsw 開啟之後會有20個專案。
然後將專案全選->屬性->組態屬性->C/C++->程式碼產生->執行階段程式庫 改為 多執行緒偵錯(/MTd)
再將上方作用中Debug 改為 Release 執行階段程式庫 改為 多執行緒(/MT)

套用跳出後,目前使用Debug 模式,再全選所有專案->建置選取範圍 會編譯一段時間後,再改 Release 編輯一次。


於是在(WXWIN)\build\msw\ 會出現 vc_mswd 和 vc_msw 的目錄。


第三步:使用wxDev-C++ 建立新專案,建立你需要的介面。然後選擇 visual 2005 編譯,就會建立一個相關檔案,和一個 rc的檔案,給visual 2005 使用。


第四步:visual 2005 建立新專案
(1)一般->空專案 選取跟 wxDev-C++剛建立的專案相同的名稱與目錄


(2)原始程式檔->加入->現有項目 載入 cpp 檔案


(3)標頭檔->加入->現有項目 載入 h 檔案


(4)資源檔->加入->現有項目 載入 rc 檔案


(5)對專案按右鍵->屬性->組態屬性->C/C++->一般->其他include目錄
加入 "$(WXWIN)\include";"$(WXWIN)\contrib\include";"$(WXWIN)\lib\vc_lib\mswd"
如改為Release模式 將 "$(WXWIN)\lib\vc_lib\mswd" 改為 "$(WXWIN)\lib\vc_lib\msw" 即可


(6)C/C++->前置處理器->前置處理器定義->
WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CRT_NONSTDC_NO_DEPRECATE
此為Debug模式,如要改成Release 模式
WIN32;__WXMSW__;_WINDOWS;NOPCH;_CRT_NONSTDC_NO_DEPRECATE


(7)連結器->一般->其他程式庫目錄 -> "$(WXWIN)\lib";"$(WXWIN)\contrib\lib";"$(WXWIN)\lib\vc_lib"


(8)連結器->輸入->其他相依性 ->
comctl32.lib rpcrt4.lib wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib wsock32.lib oleacc.lib
要改成Release 模式:
wxmsw28_core.lib wxbase28.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib odbc32.lib


如果要使用網路功能請再加入 wxbase28d_net.lib


(9)連結器->資訊清單檔 ->產生資訊清單->否

最後選擇編譯,就可以使用 Visual 2005的方便與強大的程式編輯功能 與 wxDev- C++ 方便的介面設定功能。


產生的問題清單:
(1)如果有產生外部呼叫錯誤:重新編譯 WxWidgets 的 與目前程式使用的 Debug、Release 模式 再試試看。
(2)在Debug模式出現沒有偵錯資訊時:連結器->偵錯->產生偵錯資訊->是


以上純屬個人經驗 與 大家分享


參考資料:
http://www.wxwidgets.org/wiki/index.php/Compiling_WxWidgets




2007/04/28

Fotonetgrab 強大的相簿下載軟體

在海海的相簿網站在國內外如雨後春筍般一個個冒出來,一個個攝影大師將美女的各型各態用單眼相機一張張的保存下載,當看到這些漂亮的照片放在各個相簿網站中卻沒有一個方便的方法,保存在自已的桌面上,實是讓人覺得遺憾。


於是抓相簿的軟體也應勢而生,比較有名的像無名小站有WretchXD、Xuite有Show Me Xuite、Pixnet有PixnetXD、Flicker有 GMAN: FlickrDown 等,可以抓多相簿的JWGet、幹圖王。但是有些軟體已經暫時停止更新、或是只能支援單一網站,或是使用較困難,吃的資源很多。很多相簿網站的風格、內容日異更新,沒有相對的程式更新是沒有辦法再抓取的。


那為什麼一般的下載軟體沒有辦法去抓這些的相簿中的圖片呢?因為網站的特別設計中,在下載時需要回傳之前的網址,做為是否為外部或內部連結的判斷。就像是使用Cookie或是HTTP協定等技巧,對瀏覽軟體做為是否為一頁頁連入瀏覽而不是使用下載軟體下載圖片,進而阻擋。


現在就來介紹本篇重點推薦的 Fotonetgrab 強大的抓相簿軟體。
目前官網:
http://home.kimo.com.tw/gacktt2001/ (因為將關閉個人網頁使用,即將停用)
http://hk.geocities.com/gacktt2001/ (有留言板)
http://www.chinesefreewebs.com/gackt2003/ (kimo關站後會主要官網)



目前版本為 3.1 PreView10
下載點:
http://gackt2003.badongo.com/
http://rapidshare.com/users/ERXX0O



注意事項:(以下自官網)


主程式: Fotonetgrab 3.x build xxxxxx 或 Fotonetgrab 3.x Preview x


- 如果你是第一次使用, 可下載"Fotonetgrab help"或看線上教學文件


關於程式:
==========================
程式是用c#寫成, 所以你需要安裝.NET Framework 1.1套件, 連結如下:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3

.NET Framework 1.1 Service Pack 1:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38

- 假如你已經安裝了.NET framework 1.1, 就不用再安裝了.
- 如果你是用Windows XP SP2, 可先試一試在不安裝.NET framework 1.1套件下執行此軟件, 如果不行再安裝.
- 如果你之前沒有XP的登入畫面(有則不用理會), 安裝了.NET framework 1.1 後會多了一個登入畫面, 你只要在控制台的"使用者帳戶"選項裡把你現在使用中的登入名稱以外的帳號刪除則可
(沒有記錯的話, 會多了一個帳號: ASP.Net)
- 現階段無需安裝.NET framework 2.0或3.0, 因為程式目前只是會使用.NET Framework 1.1. 未來的Fotonetgrab 4.x才會使用.NET Framework 2.0


可支援的相簿種類:
Fotop無名小站(支援密碼輸入)、PCHomePBase優仕網天空部落(支援密碼輸入) 、Xuite(支援密碼輸入)、AvbuzzPixnetEC-PHOTOBS2310mb.comPatPatGallery憶美網(支援帳號登入) 、CViewFotoGBImageStationWebshots網易相冊(支援密碼輸入) 、Yahoo相簿(台灣/香港)、FlickrPhotolinkYahoo相簿(台灣/香港) 、我酷網Windows Live SpacesGoogle Picasa 網路相簿Vlog(不完全支持)…等23個網路相簿。


當然支援這麼多的網站需要作者努力的更新,於是PreVeiw版本也一直在增加在,在最新的版本中也支援的了判別是否有最新版的功能,使用者不需擔心是否有最新版本的問題。


下以介紹一些特別的功能:
自動判別網站:在貼上網址之後可以自動判別是什麼網站,不需特別指定網站,當然在輸入帳號模式的時候還是要選擇網站。
預先下載列表:在輸入網址掃瞄之後,可以列出目前的相簿,讓使用者勾選是否要繼續掃瞄,像我這種懶得勾選的人,也可以設定是否下載列表後,檔案直接下載,讓我在自已的儲存的目錄中,慢慢選擇想要的圖片。
支援多線程下載:基於保護網站的功能只有2線程,當然不可開太多線程,以免網站頻寬被抓圖軟體吃光。
多語言支援:目前支援英文、繁中、簡中,真是大德來的。
記錄下載網址:重複網址可以選擇不下載,讓你抓圖不會一直重複,佔了頻寬,也佔了硬碟空間,更重要的是只會抓到新的相簿,不會再抓到舊的圖檔了。


當然還有許多貼心的功能像是預覽模式、下載頁面模式、預先指定帳號密碼、透過 Proxy下載 等。都等著使用者去一一使用發現。


目前的缺點:
程式不太穩定,由於目前還是PreView版本,另外網站的常更新網頁內容,使用過幾天這個版本就無法再下載某個網站,但是只要到留言區留言,給作者打打氣,作者都會熱心的回應,相信下個版本都會更好更穩定。

2007/04/21

wxWidgets玩玩看

wxWidgets是一款跨平台類似MFC的OpenSource GUI函式庫,另我驚豔的是跟平台中居然也有支持手機。




之前Visual Studio 2005 Edition Express剛推出的時候,本來想拿來寫幾個程式練練手,沒想到居然沒有支援MFC,讓人小小失望了一下,於是就在網路上搜尋是否有類似的函式庫,就看到這款wxWidgets(聽說本來名稱為wxWindows,但是微軟施壓於是就改為目前的名稱了)。


這款有一個非常特別的地方就是可以選擇不同的編譯軟體,像在GCC 可以跨平台使用,或是使用 Visual 2005,或是使用BCC 等,由於這個特點,使得寫出來的軟體在不同平台編譯後,會執行較快,程式較小等優點。wxWidgets跟MFC觀念上有許多相似之處,熟悉MFC的程式朋友,應該轉換的時候應該不會遇到太大的阻力。


不過畢竟這是個函式庫,要跟一個好的IDE軟體配合,才可以發揮應有的威力,當然就要介紹一下wxDev-C++這個軟體,這個是一個OpenSource的IDE,配合wxWidgets的編譯,有中文介面,另外在撰寫程式製作介面的時候還有類似Delphi的可拖拉式選項。特別的是這個軟體是由Delphi所寫的。


以下記錄幾個wxWidgets的相關網站:


大陸資料:
http://wxwidgets.cn/
http://www.wxchinese.org/
大陸翻譯的電子書:
http://cnwxwidgets.googlepages.com/wxwidgets_frame.html


台灣資料:
http://blog.roodo.com/richielin996/archives/2353530.html


由於我也才開始入門,而且MFC也是自學中,所以寫下這篇文章,記錄一下相關網站與相關軟體資料。