GacUI 0.4.0.0 發(fā)布啦
摘要: 昨晚終于發(fā)布了GacUI 0.4.0.0,也就是第五個release了。現(xiàn)在GacUI的源代碼可以在三個地方找到,分別是:
Codeplex:http://gac.codeplex.com
Github:https://github.com/vczh/gac
主頁:http://www.gaclib.net
這兩個月在開發(fā)GacUI的對象的反射系統(tǒng)之外,一直在做Windows 8的皮膚。現(xiàn)在的GacUI已經(jīng)擁有了兩個皮膚,一個是模仿Windows 7的,另一個是模仿Windows 8的。GacUI在啟動的時候,會根據(jù)Windows的版本來自己選擇要用哪個皮膚做缺省皮膚。使用g::NewXXX()函數(shù)創(chuàng)建的控件都會直接使用當(dāng)前的皮膚(如果沒有用SetCurrentTheme替換掉的話,就是缺省皮膚)來創(chuàng)建控件,否則,直接new控件類的話,要傳入一個創(chuàng)建好的皮膚對象。
閱讀全文
posted @
2012-10-18 22:16 陳梓瀚(vczh) 閱讀(3783) |
評論 (7) 編輯
合并Visual Studio本地C++XML注釋文檔和PDB的符號內(nèi)容
摘要: 終于到了激動人心的時刻了。今天的博客內(nèi)容將永遠(yuǎn)消除Visual Studio的本地C++XML注釋編譯出來的XML文檔沒有辦法生成可讀文檔的根本原因。
首先介紹一下C++的XML注釋。在啟用注釋之前,我們必須先去工程屬性里面,把[C/C++ -> Output Files -> Generate Xml Documentation Files]設(shè)置成Yes。這樣我們就可以在C++的類啊函數(shù)上面寫XML注釋,然后被編譯成一份帶有符號鏈接的XML注釋集合。這里先給一個GacUI的XML注釋的例子:
閱讀全文
posted @
2012-03-09 17:04 陳梓瀚(vczh) 閱讀(6781) |
評論 (7) 編輯
使用VS API開發(fā)一個PDB Dumper并且可以在沒裝VS2010的計算機(jī)上運行
摘要: GacUI到了撰寫文檔的時候了。雖然GacUI本身的功能還沒有全部完成,但是發(fā)布一個alpha版還是可以的。因此GacUI需要一份文檔。自從.net語言支持XML注釋生成文檔之后,Visual Studio的本地C++也支持使用XML注釋了。只要打開了[工程屬性 -> C/C++ -> Output Files -> Generate XML Documentation Files]之后,Visual Studio會在編譯本地C++工程之后,將所有的XML注釋收集起來,放在和可執(zhí)行文件同一個目錄下的
里面。然后我就嘗試bing了一下有沒有從C++的XML文檔生成可讀文檔的工具,結(jié)果發(fā)現(xiàn)只有.net才支持。
后來我稍微研究了一下(詳細(xì)內(nèi)容將會在下一篇博客透露),發(fā)現(xiàn)之所以沒人寫這個工具,是因為只有.net的可執(zhí)行文件才包含足夠多的元數(shù)據(jù),而且這些元數(shù)據(jù)是必須的,否則無法生成一個完整的文檔。舉個例子,雖然包含了xml注釋和該注釋所在的符號,但是卻沒有包含該符號的結(jié)構(gòu)信息。結(jié)果你試圖生成一個函 閱讀全文
posted @
2012-03-09 14:43 陳梓瀚(vczh) 閱讀(7047) |
評論 (0) 編輯
最終還是決定直接以源代碼方式發(fā)布GacUI了
摘要: 在制作GacUI讀pdb生成代碼的過程中,感受到了C++語言設(shè)計和dll的需求之間的鴻溝。對于一個充分利用了C++各種功能的類庫來說,制作成dll具有非常大的困難,特別是在函數(shù)返回POD(Plain Old Data)的引用,和輸入輸出帶有泛型的類上面。所以現(xiàn)在還是決定以源代碼的方式來發(fā)布GacUI。但是pdb生成代碼并沒有白做,因為反射還是存在的。但是因為GacUI一共有48000行代碼,80多個源代碼文件,直接發(fā)布使用起來總是不方便。所以我寫了個小工具,根據(jù)xml的配置來將源代碼合并成少數(shù)幾個比較大的代碼文件。這樣使用的時候,只需要直接把幾個cpp拖進(jìn)工程里面,就可以使用了。而且根據(jù)之前發(fā)布的一個投票,似乎大家也最喜歡這種方法。因此這次的決定,僅僅刪掉了作為backup plan的dll方法。
這里我給出小工具的代碼和配置文件。這個配置文件是基于GacUI做出來的,不過大家可以修改它,以便用于自己的工程上面:
閱讀全文
posted @
2012-02-29 05:34 陳梓瀚(vczh) 閱讀(4019) |
評論 (9) 編輯