• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            cexer

            cexer
            posts - 12, comments - 334, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            共4頁: 1 2 3 4 
            @陳梓瀚(vczh)
            囧,前兩個月我發了free script于是大家都做腳本,一個月前我發了gui,大家就開始gui了……

            @陳梓瀚(vczh)同學確實有著“拋玉引玉”的作用。再接再歷!
            re: GUI之窗口過程thunk cexer 2008-08-25 11:49
            @proguru
            說的就是“特殊情況”。
            @陳梓瀚(vczh)
            曾經實現過類似HTML的,加了上腳本引擎,可配置能力和二次開發能力大大增強,用處還是很大的。
            re: GUI之窗口過程thunk cexer 2008-08-25 09:13
            @proguru
            自己用個map把窗口與指針裝起來,另有好處。比如可以對map進行循環,進程結束時可以利用這個map做一些其它的事情,例如幫助用戶銷毀沒有銷毀的句柄,刪除未刪除的指針。
            不錯,Placement 那個有創意。不過用 WM_SIZE 消息來移動還是最靈活的。
            @空明流轉
            有時候多個 GUI 線程還是很有用處的。比如說,用多線程模擬多進程,能夠節省很多資源。像 Explorer.exe。或者 Emeditor 的多文檔。
            Welcome to the club!
            研究“輪子功”的同志越來越多了哈。
            不過我覺得 thunk 不是必須的哈。曾經用過 thunk,總是擔心吊膽的怕它崩潰。因為它跟操作系統對內存代碼的管理策略相關,有些操作系統在某些條件下可能會禁止提交可運行的內存塊。仍然期待博主寫出來哈!
            @空明流轉
            節點的類型轉換都是在解析完成以后的啊。如果是在循環當中用dynamic_cast,效率還是挺低的。
            re: 08年08月22日 cexer 2008-08-22 21:50
            樓主幸福啊,我完全是造自學。。
            @空明流轉
            系統懷疑你灌水,亂棒打出!
            @陳梓瀚(vczh)
            效率問題。dynamic_cast<>的比較的效率和字符串比較差不多,因此。。。不過想換成使用dynamic_cast<>也容易,直接
            #define xml_cast dynamic_cast
            就行了。
            @陳梓瀚(vczh)
            話說我的庫的接口完全是Utf-16字符串的,然后我有一個Mbcs字符串類,倆能互轉。所以用我的庫的人要么用Utf-16,要么在每一個參數和返回值那里都去轉。

            一樣的哈。
            @陳梓瀚(vczh)
            真是牛人,不過你的代碼風格我不喜歡哈。
            真是個牛逼的庫,以前用過它的 CXTOutookbar。
            有創意的哈,不過工程中不要有這種。
            tinyxml對中文的支持太別扭了。
            re: 模板函數問題 cexer 2008-08-20 23:33
            是的,這種細節就不要自己猜了,找本書看看,效率高些。
            preprocessor,預處理元編程工具,包含重復和遞歸, 作者 Vesa Karvonen 和 Paul Mensonides.
            有的時候宏的確實很有用,BOOST里面有一個預處理元編程庫。
            @空明流轉
            的確是半斤八兩,不過虛函數還得查一下虛表,生成的匯編代碼會有多幾個寄存器操作,而靜態的函數指針是直接call地址的。
            @minji
            我會把我的心得和方法寫幾篇日志出來,到時你看看吧。三言兩語也不能說清楚。
            @沈臻豪(foxtail)
            指針也是有類型的,除了void*,但是放一大堆void*在一個容器里面,它的類型已經丟失,取出來的的時候就不知道怎么用這個void*進行函數調用了。
            消息處理函數的參數類型限制得太死了,但是不同參數類型的函數你又無法放到一個容器里面去,這是寫GUI框架一個基本的問題,看看你會怎么解決。
            @jxfwinter
            這個東西解釋起來比較麻煩,我也不知道到底你是不是理解的和我想的一樣。和 SmartWin 不大一樣。定義即注冊有兩個意思,一是如果定義了函數則進行注冊,二是如果沒有定義函數就不注冊,并不是像你說的在基類里預先注冊過了。想像一下幾千個消息,要一個個注冊多麻煩。而且預先注冊的方法,將會限制消息處理函數的名字。有時間我會把這個消息機制寫幾篇日志出來分析一下實現原理。
            @jxfwinter
            你沒有看明白?
            這個框架,函數定義即注冊,只需要定義函數即可,已經用不著像 MESSAGE_HANDLER 宏,或者類似功能的東西了。這也是與一般的框架最大的不同。
            re: 奇怪的g++的行為 cexer 2008-08-13 17:51
            確實有點古怪,那個 getnum() 明明是返回運行期數值。
            興趣驅動的人適合作藝術家。
            毅力驅動的人更適合作程序員。
            @陳梓瀚(vczh)
            能夠親手制造一個漂亮性感用起來爽的輪子,再苦再累也值得啊.
            你的意思是一個針對每一個event,都寫一個handler類?
            多謝提供代碼,等我的框架有個成熟穩定了,也打算開放代碼.
            @陳梓瀚(vczh)
            GUI 太復雜了,GUI Editor 不可能完成所有的工作.而且有了這些接口,GUI Editor 的相關部分要容易實現得多.
            @陳梓瀚(vczh)
            將event bind 到其它類的成員函數,或者全局函數,以前都實現過,不過不是很實用,干脆去掉了.對于全局函數,如果不是無參數的函數,那么給它提供運行時的參數是一件麻煩的事.因為設計框架的時候,并不知道用戶會提供些什么類型的全局函數,如果把這件事給用戶提供,用起來比較麻煩,接口看起來不簡單明了.如果只允許提供特定的參數數目的類型,倒是很簡單,不過就不實用了,所以后來就去掉了.
            WM_COMMAND 和 WM_NOTIFY ,或者是其它消息的細節,框架都應該封裝起來,不讓最終的用戶接觸.
            最好是選擇自己喜歡的,要不做程序員會做得很痛苦.
            @eXile
            這倒是的.你說的這個問題,JLIB2(一個 C++ 版的 AWT )就解決得很好,因為設計方式都是 java 的,所以和 WTL,MFC 之類的大大的不同.不過它大量地使用虛函數,存在性能問題.WinX 這個庫的代碼我也看過,它在 GUI 上幾乎沒有任何的創新,不能說它是一個獨立的 GUI 框架.只能說是對 WTL 的小修補.
            @eXile
            多謝,我對QT用得不多,我會把你這個方法更新到日志上去.
            re: 兩種模式的選擇 cexer 2008-08-08 11:04
            我覺得模式二好一些.比如說如果因為某些原因產品的生產順序需要改變,如果用模式一,國為每一個產品生產的時候是依賴其它產品的,所以需要更改產品鏈當中的相關產品的生產代碼.但是如果用模式二,就只需要修改控制器的代碼.
            這個 DFA 還不是最小狀態的吧?
            @megax
            這種方式的消息處理,要比 MFC 簡單直接吧。你看到那么多的模板參數,最終的使用者是不會接觸到的,都是框架用于擴展自身的。
            @eXile
            你說它沒有更高階的抽象,大概是因為你在代碼里看到了一些 windows 上的類型。不過類型都是可以 typedef 的,消息值是可以 define 的。這個框架雖然是針對 windows 平臺的,寫這個框架的目的是嘗試一種新的方式,對所有消息驅動的系統都是適用的,包括非 GUI 系統,或非 windows 平臺。
            @Sil
            謝謝支持,不過還在寫作當中。
            @陳梓瀚(vczh)
            不知道你說的很囧具體是什么?這個框架的上一個版本封裝了許多的控件,不過沒有封裝 ListView,所以不知道是否存在你說的問題,因為是實驗性質的東西,還沒有在大的工程上測試過。
            沒有看明白呢。。。
            re: Vista的新控件 cexer 2008-07-26 17:59
            這個沒有絕對的吧,得看具體的環境。

            比如有一個GUI框架,它用prototype模式從xml產生界面。分幾步進行
            1.解析器看到一個結點
            <window name="xxxx" text="xxx ... />
            2.從prototype的注冊表里查找節點名字"window"對應的prototype,并clone出對象window
            3.將xml結點傳給對象,調用對象的創建函數window->create( XmlElement& xml )

            我覺得在這種方式下先new后create會比一步創建好得多。當然也可以第二步時,將xml結點也同時傳給prototype創建者,一步創建成功,不過這樣比起分步進行,一是少了一個可控制進行其它操作的機會,二是如果以后創建方式有所更改,就也得同時更改prototype創建者的代碼。


            re: Vista的新控件 cexer 2008-07-25 11:52
            強迫用new來創建對象,在一些場合當中會造成設計上的難題。
            比如假設有設計為了更大的靈活性,要求對象的創建與對象管理的資源的初始化與創建能夠要分步進行。
            博主辛苦了,一直在追著看,在尋找這樣一種標準。
            re: dynamic_cast使用的討論 cexer 2008-07-10 23:46
            在實際的項目當中,可以自己實現dynamic_cast的運行時安全,并且更具有效率的轉換方法。com也能一種。
            @夢在天涯
            應該是TlsSingelton,我寫錯了哈,謝謝提醒。
            @www.helpsoff.com.cn
            這個"/MT"應該指的鏈接是微軟運行時庫,C運行時庫。C++標準庫對包括map在內的容器在多線程環境當中的情況沒有采取任何的保護措施。
            謝謝樓主分享,最近正在找這方面的東西。
            謝謝分享
            呵呵謝謝耐心看完。map可以通過編譯器設置線程安全?我還不知道呢。不過引入tls與“線程相關的單件”,是為了可以讓更多更復雜的此類應用更容易實現。還有map的線程安全是由實現提供的(非標準),應該不是所有編譯器都支持的吧?
            多謝博主的分享!
            共4頁: 1 2 3 4 
            一本一本久久A久久综合精品 | 久久久国产精品福利免费 | 久久国产精品一区| 国内精品久久久久久久亚洲| 欧美一级久久久久久久大片| 99久久99久久精品国产片果冻| 亚洲AV无码久久| 国内精品久久久久久中文字幕| 久久精品国产亚洲αv忘忧草| 久久香综合精品久久伊人| 99久久伊人精品综合观看| 少妇被又大又粗又爽毛片久久黑人| 亚洲中文字幕无码久久综合网| 91久久精品国产91性色也| 久久久久久曰本AV免费免费| 7777久久亚洲中文字幕| 香蕉99久久国产综合精品宅男自 | 久久久精品一区二区三区| 天天做夜夜做久久做狠狠| 国产综合久久久久| 久久人人爽人人爽人人av东京热| 亚洲精品高清久久| 久久99精品久久久久久动态图| 国产午夜福利精品久久| 熟妇人妻久久中文字幕| 亚洲精品成人久久久| 99久久99久久精品国产| 99久久国产热无码精品免费| 久久久久高潮综合影院| 久久伊人五月天论坛| 国产精品九九久久免费视频| av午夜福利一片免费看久久| 亚洲午夜久久久影院| 一本一本久久A久久综合精品 | 久久AⅤ人妻少妇嫩草影院| 99久久久国产精品免费无卡顿| 亚洲精品国产字幕久久不卡| 人妻无码久久精品| 久久毛片免费看一区二区三区| 国产精品久久久久久久久久免费| 久久精品成人免费看|