今天無聊,想起BCG有個Skin Application,于是研究了下。
開始不明白怎么回事,用向導生產了一個Skin,看了下程序結構:

有這些函數:






























































































































結果發現根本沒有導出函數聲明,在回去看看原以為導出的函數,shit,上當了,不是導出函數啊???讀一下函數,BCGCBProGetSkinClass?嫌疑最大,但是怎么調用呢??一時間不可能在化大力氣去研究整個BCG吧。
突然想到以前看到過BCG帶的一個例子--BCGPSkins在安裝目錄下,于是打開源碼希望有所發現,里面確實實現了幾種Skin風格,然而它是一個完整的exe,在想想我剛生成的第一個skin是否也是一個exe??于是打開Setting,發現link->output file name:F:\Program Files\Common Files\BCGsoft\Skins\TESTSKIN.dll(我的OS是F:),哦,確實是一個dll,那我怎么改造成exe呢??
思維再次堵住,索性到那個目錄下看看,哦,發現好多Skin啊,放這里做什么??想了一下,是不是BCG有一種機制可以Custom界面成為這些風格啊??于是再次生成一個exe,這一次一步一步細心走向導,終于發現最后一步有一項:Use Skin Manager,勾上,選擇缺省目錄應該就是剛到的那個目錄了吧。
運行,選擇Customize,找一下,發現了一個按鈕Visualization,按一下,oh yeah,就是了,原來是皮膚插件管理機制,通過那幾個函數實現的。
至此研究過程基本結束,大概化1.5小時。又思考了下那些函數到底如何導出,開始還以為是BCG那個頭文件里面預定義導出的,于是搜索了一下BCGCBProGetSkinClass?,發現root.def,這個是向導模版里面的文件,打開發現在這里導出的。











開心,覺得有一種成就感!