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

            桃源谷

            心靈的旅行

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

            C

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

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

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

            posted @ 2010-07-17 12:17 lymons 閱讀(3355) | 評論 (0)  編輯 |

                 摘要: 1. 添加右鍵彈出菜單
            我們在這里,將會在插件中加入右鍵彈出菜單功能。也就是如下圖那樣,在文檔區內,點擊鼠標右鍵時會彈出的菜單。我們將在這個菜單中加入屬于我們插件的菜單項目”testplug”。

            加入菜單項目的效果如下圖:


            讓我們看看,咱們創建的插件工程中,給我們提供了什么樣的入口代碼了吧。
            1. 在函數BuildModuleMenu中添加菜單項。
            在文檔的視圖里才加入菜單項的入口函數是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 閱讀(2310) | 評論 (0)  編輯 |

                 摘要: 1. 創建Plugin工程

            ① 從File主菜單中,選擇new -> Projects… , 打開工程創建向導對話框。
            ② 在Projects的列表框中,選擇 Code::Blocks plugin ,然后點擊 Go 按鈕,進入插件創建向導對話框。
            ③ 創建向導的第一個畫面中有重要信息說明。請注意的是里面提到了必須設置#cb, #wx這兩個全局變量。不過,還好咱們在《CodeBlock插件開發指南 一》中已經對這兩個變量進行了設置。咱們在這里,直接點擊Next進入到下一個畫面即可。

              閱讀全文

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

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

            CodeBlocks是一個優秀的C/C++ IDE開發環境,另外它也是開源的,也是跨平臺的.你能夠利用它的源代碼進行二次開發,也能為它制作自己的插件. 它的GUI是利用了跨平臺的wxWidgets庫來做成的,所以它才能夠實現跨平臺.

            下面將介紹CodeBlock的插件制作方法,當然它必須得通過編寫自己的程序才能實現,所以懂得一些C++的編程知識能夠幫你更容易去理解它的內容.

            1. 準備CodeBlocks的開發環境  閱讀全文

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

                 摘要: W2K信號(Signals)的設備驅動

            Unix下的信號提供了一個簡單的IPC機制,也就是當進程收到一個信號后會異步(asynchronous) 地調用你的信號處理函數(也叫做句柄),不管你的代碼是否已經處在執行的過程之中。 而在Windows 2000(譯者注:版本高于W2k的Windows平臺)下就需要用到一個設備驅動,以便你能使用異步過程調用(asynchronous procedure calls , 簡稱APCs或者APC) 來達成同樣的效果.

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

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

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

                 摘要: 函數指針提供了一些極其有趣,有效和絕妙的編程技術。你能用它代替switch/if語句來實現你自己的晚綁定(late-binding)或者作為回調(callback)來使用。不幸的是–可能由于它的語法比較復雜–幾乎所有的電腦書籍和文檔上都講解的不多。即便如此,它們也只是做了相當簡單和膚淺的說明。而對于函數指針你只需要明白它是什么以及它的語法,因為它和一般的指針比起來從來不用關心內存的分配和釋放,所以它被使用的時候是不易產生錯誤的。但你要注意的是: 要時常問自己是否真的需要函數指針。因為雖然用它來實現晚綁定也很漂亮,但用既存的C++數據結構的話會使代碼更可讀和更簡潔。另外,晚綁定的一方面實際上就是運行期(runtime): 如果你調用了一個虛擬函數,你的程序會根據一個存儲所有函數的虛擬表(V-Table)自己來確定到底真正調用的是哪一個。這就要花費一些時間而用函數指針代替虛擬函數的話有可能會節省一些時間。BTW: 現代的編譯器在這方面都做得非常好!就那我的Borland編譯器來說這個時間就比調用一次虛擬函數能節省2%。

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

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

            posted @ 2009-02-02 12:31 lymons 閱讀(4759) | 評論 (0)  編輯 |

            posted @ 2009-02-02 11:58 lymons 閱讀(1144) | 評論 (0)  編輯 |

                 摘要: 「Code Reading―從開源里學習軟件開發的技法」有這樣一本書。我是這本書日本版的譯者, 呵呵有點王婆賣瓜---自賣自夸的感覺,但是把讀源代碼作為主題的在市面還沒有其他的書。我認為這是一本網羅了從技法到工具,數據結構,構架,還有利用代碼的實際讀法的實例的好書。

            照片1●「Code Reading―跟著開源來學習軟件的開發技法」
             這本書的前言里,編程高手Dave Thomas寫下了下面的話。
             沒有研讀過其他作家作品的偉大作家,沒有研究過其他畫家筆法的偉大畫家,沒有盜取過并肩作戰的同事的技術的技巧高明的外科醫生,沒有在副駕駛的位置積累實際經驗的波音767的機長,在現實生活中真的會存在他們這樣的人嗎?  閱讀全文

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

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

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

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

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

                 摘要: Unix跟Windows等那些”對于開發者易于使用”的OS比起來,在信號和線程的利用方面有諸多的限制。但是即使不知道這些知識就做構架設計和實現的情況也隨處可見。這個就是那些經常不能再現的bug的溫床吧。

            因此,我想分成幾回來寫一些準則來防止陷入到這些圈套里。

            準則1:不依賴于信號收發的設計

            ·給其他進程以及自己發送異步信號并改變處理流程的設計不要做

            異步信號是值用kill系統調用來創建?發送的信號、例如SIGUSR1,SIGUSR2,SIGINT,SIGTERM 等
            簡單的使用忽略信號(SIG_IGN)則沒有問題
            ·不要把線程和信號一起使用
              閱讀全文

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

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

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

                 摘要: 在多線程程序里,在”自身以外的線程存在的狀態”下一使用fork的話,就可能引起各種各樣的問題.比較典型的例子就是,fork出來的子進程可能會死鎖.請不要,在不能把握問題的原委的情況下就在多線程程序里fork子進程.  閱讀全文

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

                 摘要: 隱鋒同學的blog上有關于libxml2的一篇文章,正好最近要使用這個庫來處理xml文件。
            不過在測試時我們發現用文章里F. 添加屬性例程代碼 時,添加的keyword結點后面沒有回車,
            跟后面的結點擠在一行了,不是很好看。
            例如,以下的xml例子文件  閱讀全文

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

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

            不過,有的時候也會用到阻塞模式的文件鎖,而且會要求不能被一直阻塞,等待
            了一定時間后應返回。也就是說,想給阻塞版本的文件鎖加上一個超時時間(timeout)。

            通過man手冊,fcntl(2)里面沒有關于在阻塞模式時,設置超時時間的任何描述。
            但從man手冊里我們發現,文件鎖在阻塞時會被信號(signal)中斷。所以我們就像
            可以利用設置信號軟中斷來實現一個自己版本的等待超時呢。  閱讀全文

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

            我的個人簡歷第一頁 我的個人簡歷第二頁
            亚洲va久久久噜噜噜久久男同| 久久亚洲精精品中文字幕| 久久99国产精品久久99果冻传媒| 亚洲色欲久久久综合网东京热| 久久九九兔免费精品6| 丰满少妇高潮惨叫久久久| 99国内精品久久久久久久| 性高朝久久久久久久久久| 99久久国产综合精品女同图片| 久久精品国产亚洲77777| 国产毛片久久久久久国产毛片| 亚洲国产精品狼友中文久久久| 无码久久精品国产亚洲Av影片 | 久久精品免费一区二区| 精品久久久久久综合日本| 亚洲欧美另类日本久久国产真实乱对白| 亚洲AV无码久久精品狠狠爱浪潮 | 狠狠人妻久久久久久综合蜜桃| yy6080久久| 91精品国产91久久| 久久精品国产第一区二区三区| 久久久中文字幕日本| 久久综合欧美成人| 久久香综合精品久久伊人| 亚洲国产成人久久精品99 | 国产91色综合久久免费分享| 久久婷婷色综合一区二区| 99久久精品免费看国产一区二区三区| 亚洲乱码精品久久久久..| 国产精品久久久久久五月尺| 久久人人爽人人爽AV片| 久久久久女人精品毛片| 伊人久久大香线蕉亚洲五月天| 性高朝久久久久久久久久| 久久婷婷人人澡人人| 久久人人爽人人澡人人高潮AV| 久久99精品久久久久久不卡| 国产视频久久| 亚洲精品久久久www| 久久久久亚洲AV无码专区首JN| 午夜精品久久久久久影视777|