• <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>

            桃源谷

            心靈的旅行

            人生就是一場(chǎng)旅行,不在乎旅行的目的地,在乎的是沿途的風(fēng)景和看風(fēng)景的心情 !
            posts - 32, comments - 42, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            C

            posted @ 2010-08-01 13:19 lymons 閱讀(7407) | 評(píng)論 (3)  編輯 |

                 摘要: 在C++下編寫synchronized method比較難 (1)CommentsAdd star

            在Java中有叫做synchronized這樣一個(gè)方便的關(guān)鍵字。使用這個(gè)關(guān)鍵字的話,就可以像下面那樣能夠簡(jiǎn)單的進(jìn)行"同步"method. 然而,被同步的method并不表示它就能在多線程中同時(shí)被執(zhí)行.   閱讀全文

            posted @ 2010-07-17 12:17 lymons 閱讀(3365) | 評(píng)論 (0)  編輯 |

                 摘要: 1. 添加右鍵彈出菜單
            我們?cè)谶@里,將會(huì)在插件中加入右鍵彈出菜單功能。也就是如下圖那樣,在文檔區(qū)內(nèi),點(diǎn)擊鼠標(biāo)右鍵時(shí)會(huì)彈出的菜單。我們將在這個(gè)菜單中加入屬于我們插件的菜單項(xiàng)目”testplug”。

            加入菜單項(xiàng)目的效果如下圖:


            讓我們看看,咱們創(chuàng)建的插件工程中,給我們提供了什么樣的入口代碼了吧。
            1. 在函數(shù)BuildModuleMenu中添加菜單項(xiàng)。
            在文檔的視圖里才加入菜單項(xiàng)的入口函數(shù)是BuildModuleMenu,它的初始代碼是下面那樣:
            void testplug::BuildModuleMenu(const ModuleType type, wxMenu* menu, const FileTreeData* data)
            {
            //Some library module is ready to display a pop-up menu.
            //Check the parameter \"type\" and see which module it is
              閱讀全文

            posted @ 2010-04-29 20:58 lymons 閱讀(2325) | 評(píng)論 (0)  編輯 |

                 摘要: 1. 創(chuàng)建Plugin工程

            ① 從File主菜單中,選擇new -> Projects… , 打開(kāi)工程創(chuàng)建向?qū)?duì)話框。
            ② 在Projects的列表框中,選擇 Code::Blocks plugin ,然后點(diǎn)擊 Go 按鈕,進(jìn)入插件創(chuàng)建向?qū)?duì)話框。
            ③ 創(chuàng)建向?qū)У牡谝粋€(gè)畫面中有重要信息說(shuō)明。請(qǐng)注意的是里面提到了必須設(shè)置#cb, #wx這兩個(gè)全局變量。不過(guò),還好咱們?cè)凇禖odeBlock插件開(kāi)發(fā)指南 一》中已經(jīng)對(duì)這兩個(gè)變量進(jìn)行了設(shè)置。咱們?cè)谶@里,直接點(diǎn)擊Next進(jìn)入到下一個(gè)畫面即可。

              閱讀全文

            posted @ 2010-04-20 22:21 lymons 閱讀(5142) | 評(píng)論 (0)  編輯 |

                 摘要: CodeBlocks插件開(kāi)發(fā)指南(一)
            By Lymons(lymons@gmail.com) 2010/4/14

            CodeBlocks是一個(gè)優(yōu)秀的C/C++ IDE開(kāi)發(fā)環(huán)境,另外它也是開(kāi)源的,也是跨平臺(tái)的.你能夠利用它的源代碼進(jìn)行二次開(kāi)發(fā),也能為它制作自己的插件. 它的GUI是利用了跨平臺(tái)的wxWidgets庫(kù)來(lái)做成的,所以它才能夠?qū)崿F(xiàn)跨平臺(tái).

            下面將介紹CodeBlock的插件制作方法,當(dāng)然它必須得通過(guò)編寫自己的程序才能實(shí)現(xiàn),所以懂得一些C++的編程知識(shí)能夠幫你更容易去理解它的內(nèi)容.

            1. 準(zhǔn)備CodeBlocks的開(kāi)發(fā)環(huán)境  閱讀全文

            posted @ 2010-04-17 16:22 lymons 閱讀(9646) | 評(píng)論 (3)  編輯 |

                 摘要: W2K信號(hào)(Signals)的設(shè)備驅(qū)動(dòng)

            Unix下的信號(hào)提供了一個(gè)簡(jiǎn)單的IPC機(jī)制,也就是當(dāng)進(jìn)程收到一個(gè)信號(hào)后會(huì)異步(asynchronous) 地調(diào)用你的信號(hào)處理函數(shù)(也叫做句柄),不管你的代碼是否已經(jīng)處在執(zhí)行的過(guò)程之中。 而在Windows 2000(譯者注:版本高于W2k的Windows平臺(tái))下就需要用到一個(gè)設(shè)備驅(qū)動(dòng),以便你能使用異步過(guò)程調(diào)用(asynchronous procedure calls , 簡(jiǎn)稱APCs或者APC) 來(lái)達(dá)成同樣的效果.

            By Panagiotis E.
            August 01, 2001
            URL:http://www.ddj.com/windows/184416344

            翻譯:Lymons (lymons@gmail.com)
              閱讀全文

            posted @ 2010-04-13 10:29 lymons 閱讀(2326) | 評(píng)論 (0)  編輯 |

                 摘要: 函數(shù)指針提供了一些極其有趣,有效和絕妙的編程技術(shù)。你能用它代替switch/if語(yǔ)句來(lái)實(shí)現(xiàn)你自己的晚綁定(late-binding)或者作為回調(diào)(callback)來(lái)使用。不幸的是–可能由于它的語(yǔ)法比較復(fù)雜–幾乎所有的電腦書籍和文檔上都講解的不多。即便如此,它們也只是做了相當(dāng)簡(jiǎn)單和膚淺的說(shuō)明。而對(duì)于函數(shù)指針你只需要明白它是什么以及它的語(yǔ)法,因?yàn)樗鸵话愕闹羔槺绕饋?lái)從來(lái)不用關(guān)心內(nèi)存的分配和釋放,所以它被使用的時(shí)候是不易產(chǎn)生錯(cuò)誤的。但你要注意的是: 要時(shí)常問(wèn)自己是否真的需要函數(shù)指針。因?yàn)殡m然用它來(lái)實(shí)現(xiàn)晚綁定也很漂亮,但用既存的C++數(shù)據(jù)結(jié)構(gòu)的話會(huì)使代碼更可讀和更簡(jiǎn)潔。另外,晚綁定的一方面實(shí)際上就是運(yùn)行期(runtime): 如果你調(diào)用了一個(gè)虛擬函數(shù),你的程序會(huì)根據(jù)一個(gè)存儲(chǔ)所有函數(shù)的虛擬表(V-Table)自己來(lái)確定到底真正調(diào)用的是哪一個(gè)。這就要花費(fèi)一些時(shí)間而用函數(shù)指針代替虛擬函數(shù)的話有可能會(huì)節(jié)省一些時(shí)間。BTW: 現(xiàn)代的編譯器在這方面都做得非常好!就那我的Borland編譯器來(lái)說(shuō)這個(gè)時(shí)間就比調(diào)用一次虛擬函數(shù)能節(jié)省2%。

            注:晚捆綁(late binding)可能來(lái)自c++  閱讀全文

            posted @ 2009-02-12 16:08 lymons 閱讀(2851) | 評(píng)論 (5)  編輯 |

            posted @ 2009-02-02 12:31 lymons 閱讀(4771) | 評(píng)論 (0)  編輯 |

            posted @ 2009-02-02 11:58 lymons 閱讀(1155) | 評(píng)論 (0)  編輯 |

                 摘要: 「Code Reading―從開(kāi)源里學(xué)習(xí)軟件開(kāi)發(fā)的技法」有這樣一本書。我是這本書日本版的譯者, 呵呵有點(diǎn)王婆賣瓜---自賣自夸的感覺(jué),但是把讀源代碼作為主題的在市面還沒(méi)有其他的書。我認(rèn)為這是一本網(wǎng)羅了從技法到工具,數(shù)據(jù)結(jié)構(gòu),構(gòu)架,還有利用代碼的實(shí)際讀法的實(shí)例的好書。

            照片1●「Code Reading―跟著開(kāi)源來(lái)學(xué)習(xí)軟件的開(kāi)發(fā)技法」
             這本書的前言里,編程高手Dave Thomas寫下了下面的話。
             沒(méi)有研讀過(guò)其他作家作品的偉大作家,沒(méi)有研究過(guò)其他畫家筆法的偉大畫家,沒(méi)有盜取過(guò)并肩作戰(zhàn)的同事的技術(shù)的技巧高明的外科醫(yī)生,沒(méi)有在副駕駛的位置積累實(shí)際經(jīng)驗(yàn)的波音767的機(jī)長(zhǎng),在現(xiàn)實(shí)生活中真的會(huì)存在他們這樣的人嗎?  閱讀全文

            posted @ 2009-02-01 15:54 lymons 閱讀(5665) | 評(píng)論 (0)  編輯 |

            posted @ 2009-02-01 15:41 lymons 閱讀(1489) | 評(píng)論 (1)  編輯 |

            posted @ 2008-12-29 17:11 lymons 閱讀(2719) | 評(píng)論 (0)  編輯 |

            posted @ 2008-12-25 14:08 lymons 閱讀(1345) | 評(píng)論 (0)  編輯 |

            posted @ 2008-12-19 11:01 lymons 閱讀(1291) | 評(píng)論 (0)  編輯 |

                 摘要: Unix跟Windows等那些”對(duì)于開(kāi)發(fā)者易于使用”的OS比起來(lái),在信號(hào)和線程的利用方面有諸多的限制。但是即使不知道這些知識(shí)就做構(gòu)架設(shè)計(jì)和實(shí)現(xiàn)的情況也隨處可見(jiàn)。這個(gè)就是那些經(jīng)常不能再現(xiàn)的bug的溫床吧。

            因此,我想分成幾回來(lái)寫一些準(zhǔn)則來(lái)防止陷入到這些圈套里。

            準(zhǔn)則1:不依賴于信號(hào)收發(fā)的設(shè)計(jì)

            ·給其他進(jìn)程以及自己發(fā)送異步信號(hào)并改變處理流程的設(shè)計(jì)不要做

            異步信號(hào)是值用kill系統(tǒng)調(diào)用來(lái)創(chuàng)建?發(fā)送的信號(hào)、例如SIGUSR1,SIGUSR2,SIGINT,SIGTERM 等
            簡(jiǎn)單的使用忽略信號(hào)(SIG_IGN)則沒(méi)有問(wèn)題
            ·不要把線程和信號(hào)一起使用
              閱讀全文

            posted @ 2008-06-01 20:27 lymons 閱讀(1399) | 評(píng)論 (0)  編輯 |

                 摘要: 準(zhǔn)則2: 要知道信號(hào)處理函數(shù)中可以做那些處理
            · 在用sigaction函數(shù)登記的信號(hào)處理函數(shù)中可以做的處理是被嚴(yán)格限定的
            · 僅僅允許做下面的三種處理
            1. 局部變量的相關(guān)處理
            2. “volatile sig_atomic_t”類型的全局變量的相關(guān)操作
            3. 調(diào)用異步信號(hào)安全的相關(guān)函數(shù)
            · 以外的其他處理不要做!  閱讀全文

            posted @ 2008-06-01 20:22 lymons 閱讀(2283) | 評(píng)論 (0)  編輯 |

                 摘要: 在多線程程序里,在”自身以外的線程存在的狀態(tài)”下一使用fork的話,就可能引起各種各樣的問(wèn)題.比較典型的例子就是,fork出來(lái)的子進(jìn)程可能會(huì)死鎖.請(qǐng)不要,在不能把握問(wèn)題的原委的情況下就在多線程程序里fork子進(jìn)程.  閱讀全文

            posted @ 2008-06-01 20:16 lymons 閱讀(13085) | 評(píng)論 (0)  編輯 |

                 摘要: 隱鋒同學(xué)的blog上有關(guān)于libxml2的一篇文章,正好最近要使用這個(gè)庫(kù)來(lái)處理xml文件。
            不過(guò)在測(cè)試時(shí)我們發(fā)現(xiàn)用文章里F. 添加屬性例程代碼 時(shí),添加的keyword結(jié)點(diǎn)后面沒(méi)有回車,
            跟后面的結(jié)點(diǎn)擠在一行了,不是很好看。
            例如,以下的xml例子文件  閱讀全文

            posted @ 2007-11-30 13:44 lymons 閱讀(10175) | 評(píng)論 (8)  編輯 |

                 摘要: Linux 文件鎖是建議鎖,也有人把它叫做記錄鎖,是通過(guò)系統(tǒng)調(diào)用fcntl(2)來(lái)實(shí)現(xiàn)的。
            這種鎖在鎖定文件時(shí)有兩種模式,分別是阻塞(block)和非阻塞模式。
            在編碼時(shí)比較常用的是有一種的非阻塞模式,也就是發(fā)現(xiàn)文件已經(jīng)被其他進(jìn)程
            鎖定時(shí),立即返回不予等待。而阻塞模式則正好與它相反,也就是一直等待直到
            其他進(jìn)程釋放文件鎖為止。
            注:關(guān)于詳細(xì)內(nèi)容請(qǐng)參看《Unix環(huán)境高級(jí)編程》

            不過(guò),有的時(shí)候也會(huì)用到阻塞模式的文件鎖,而且會(huì)要求不能被一直阻塞,等待
            了一定時(shí)間后應(yīng)返回。也就是說(shuō),想給阻塞版本的文件鎖加上一個(gè)超時(shí)時(shí)間(timeout)。

            通過(guò)man手冊(cè),fcntl(2)里面沒(méi)有關(guān)于在阻塞模式時(shí),設(shè)置超時(shí)時(shí)間的任何描述。
            但從man手冊(cè)里我們發(fā)現(xiàn),文件鎖在阻塞時(shí)會(huì)被信號(hào)(signal)中斷。所以我們就像
            可以利用設(shè)置信號(hào)軟中斷來(lái)實(shí)現(xiàn)一個(gè)自己版本的等待超時(shí)呢。  閱讀全文

            posted @ 2007-11-26 14:52 lymons 閱讀(2485) | 評(píng)論 (0)  編輯 |

            我的個(gè)人簡(jiǎn)歷第一頁(yè) 我的個(gè)人簡(jiǎn)歷第二頁(yè)
            一级女性全黄久久生活片免费 | 久久丫精品国产亚洲av| 国产成人精品久久亚洲高清不卡| 日韩精品久久久肉伦网站 | 人人狠狠综合久久亚洲| 91久久国产视频| 久久国产成人| 一级a性色生活片久久无| 欧美精品九九99久久在观看| 亚洲欧美成人久久综合中文网 | 日韩亚洲国产综合久久久| 亚洲精品午夜国产va久久| 久久国内免费视频| 精品人妻伦九区久久AAA片69| 久久综合九色综合网站| 色狠狠久久AV五月综合| 91久久精品91久久性色| 国产精久久一区二区三区| 久久久久久国产精品免费免费| 亚洲精品综合久久| 国产综合久久久久久鬼色| 伊人丁香狠狠色综合久久| 人妻中文久久久久| 久久精品国产亚洲AV香蕉| 久久综合欧美成人| 亚洲精品高清一二区久久| 国产精品久久久久9999高清| 久久国产精品免费一区二区三区| 久久久久久青草大香综合精品| 久久久精品国产免大香伊| 色综合久久久久网| 伊人久久精品无码av一区| 国产成人久久久精品二区三区| 伊人久久无码精品中文字幕| 狠狠88综合久久久久综合网 | 色99久久久久高潮综合影院| 亚洲人成网亚洲欧洲无码久久| 91久久精品国产91性色也| 狠狠综合久久综合88亚洲| 人妻少妇精品久久| 久久99精品久久久久久水蜜桃|