posted @ 2010-08-01 13:19 lymons 閱讀(7428) | 評論 (3) 編輯 |
C
在Java中有叫做synchronized這樣一個方便的關(guān)鍵字。使用這個關(guān)鍵字的話,就可以像下面那樣能夠簡單的進行"同步"method. 然而,被同步的method并不表示它就能在多線程中同時被執(zhí)行. 閱讀全文
posted @ 2010-07-17 12:17 lymons 閱讀(3376) | 評論 (0) 編輯 |
我們在這里,將會在插件中加入右鍵彈出菜單功能。也就是如下圖那樣,在文檔區(qū)內(nèi),點擊鼠標右鍵時會彈出的菜單。我們將在這個菜單中加入屬于我們插件的菜單項目”testplug”。
加入菜單項目的效果如下圖:
讓我們看看,咱們創(chuàng)建的插件工程中,給我們提供了什么樣的入口代碼了吧。
1. 在函數(shù)BuildModuleMenu中添加菜單項。
在文檔的視圖里才加入菜單項的入口函數(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 閱讀(2333) | 評論 (0) 編輯 |
① 從File主菜單中,選擇new -> Projects… , 打開工程創(chuàng)建向?qū)υ捒颉?
② 在Projects的列表框中,選擇 Code::Blocks plugin ,然后點擊 Go 按鈕,進入插件創(chuàng)建向?qū)υ捒颉?
③ 創(chuàng)建向?qū)У牡谝粋€畫面中有重要信息說明。請注意的是里面提到了必須設(shè)置#cb, #wx這兩個全局變量。不過,還好咱們在《CodeBlock插件開發(fā)指南 一》中已經(jīng)對這兩個變量進行了設(shè)置。咱們在這里,直接點擊Next進入到下一個畫面即可。
閱讀全文
posted @ 2010-04-20 22:21 lymons 閱讀(5158) | 評論 (0) 編輯 |
By Lymons(lymons@gmail.com) 2010/4/14
CodeBlocks是一個優(yōu)秀的C/C++ IDE開發(fā)環(huán)境,另外它也是開源的,也是跨平臺的.你能夠利用它的源代碼進行二次開發(fā),也能為它制作自己的插件. 它的GUI是利用了跨平臺的wxWidgets庫來做成的,所以它才能夠?qū)崿F(xiàn)跨平臺.
下面將介紹CodeBlock的插件制作方法,當然它必須得通過編寫自己的程序才能實現(xiàn),所以懂得一些C++的編程知識能夠幫你更容易去理解它的內(nèi)容.
1. 準備CodeBlocks的開發(fā)環(huán)境 閱讀全文
posted @ 2010-04-17 16:22 lymons 閱讀(9665) | 評論 (3) 編輯 |
Unix下的信號提供了一個簡單的IPC機制,也就是當進程收到一個信號后會異步(asynchronous) 地調(diào)用你的信號處理函數(shù)(也叫做句柄),不管你的代碼是否已經(jīng)處在執(zhí)行的過程之中。 而在Windows 2000(譯者注:版本高于W2k的Windows平臺)下就需要用到一個設(shè)備驅(qū)動,以便你能使用異步過程調(diào)用(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 閱讀(2340) | 評論 (0) 編輯 |
注:晚捆綁(late binding)可能來自c++ 閱讀全文
posted @ 2009-02-12 16:08 lymons 閱讀(2928) | 評論 (5) 編輯 |
posted @ 2009-02-02 12:31 lymons 閱讀(4789) | 評論 (0) 編輯 |
posted @ 2009-02-02 11:58 lymons 閱讀(1164) | 評論 (0) 編輯 |
照片1●「Code Reading―跟著開源來學(xué)習(xí)軟件的開發(fā)技法」
這本書的前言里,編程高手Dave Thomas寫下了下面的話。
沒有研讀過其他作家作品的偉大作家,沒有研究過其他畫家筆法的偉大畫家,沒有盜取過并肩作戰(zhàn)的同事的技術(shù)的技巧高明的外科醫(yī)生,沒有在副駕駛的位置積累實際經(jīng)驗的波音767的機長,在現(xiàn)實生活中真的會存在他們這樣的人嗎? 閱讀全文
posted @ 2009-02-01 15:54 lymons 閱讀(5699) | 評論 (0) 編輯 |
posted @ 2009-02-01 15:41 lymons 閱讀(1497) | 評論 (1) 編輯 |
posted @ 2008-12-29 17:11 lymons 閱讀(2732) | 評論 (0) 編輯 |
posted @ 2008-12-25 14:08 lymons 閱讀(1355) | 評論 (0) 編輯 |
posted @ 2008-12-19 11:01 lymons 閱讀(1309) | 評論 (0) 編輯 |
因此,我想分成幾回來寫一些準則來防止陷入到這些圈套里。
準則1:不依賴于信號收發(fā)的設(shè)計
·給其他進程以及自己發(fā)送異步信號并改變處理流程的設(shè)計不要做
異步信號是值用kill系統(tǒng)調(diào)用來創(chuàng)建?發(fā)送的信號、例如SIGUSR1,SIGUSR2,SIGINT,SIGTERM 等
簡單的使用忽略信號(SIG_IGN)則沒有問題
·不要把線程和信號一起使用
閱讀全文
posted @ 2008-06-01 20:27 lymons 閱讀(1411) | 評論 (0) 編輯 |
· 在用sigaction函數(shù)登記的信號處理函數(shù)中可以做的處理是被嚴格限定的
· 僅僅允許做下面的三種處理
1. 局部變量的相關(guān)處理
2. “volatile sig_atomic_t”類型的全局變量的相關(guān)操作
3. 調(diào)用異步信號安全的相關(guān)函數(shù)
· 以外的其他處理不要做! 閱讀全文
posted @ 2008-06-01 20:22 lymons 閱讀(2293) | 評論 (0) 編輯 |
posted @ 2008-06-01 20:16 lymons 閱讀(13107) | 評論 (0) 編輯 |
不過在測試時我們發(fā)現(xiàn)用文章里F. 添加屬性例程代碼 時,添加的keyword結(jié)點后面沒有回車,
跟后面的結(jié)點擠在一行了,不是很好看。
例如,以下的xml例子文件 閱讀全文
posted @ 2007-11-30 13:44 lymons 閱讀(10210) | 評論 (8) 編輯 |
這種鎖在鎖定文件時有兩種模式,分別是阻塞(block)和非阻塞模式。
在編碼時比較常用的是有一種的非阻塞模式,也就是發(fā)現(xiàn)文件已經(jīng)被其他進程
鎖定時,立即返回不予等待。而阻塞模式則正好與它相反,也就是一直等待直到
其他進程釋放文件鎖為止。
注:關(guān)于詳細內(nèi)容請參看《Unix環(huán)境高級編程》
不過,有的時候也會用到阻塞模式的文件鎖,而且會要求不能被一直阻塞,等待
了一定時間后應(yīng)返回。也就是說,想給阻塞版本的文件鎖加上一個超時時間(timeout)。
通過man手冊,fcntl(2)里面沒有關(guān)于在阻塞模式時,設(shè)置超時時間的任何描述。
但從man手冊里我們發(fā)現(xiàn),文件鎖在阻塞時會被信號(signal)中斷。所以我們就像
可以利用設(shè)置信號軟中斷來實現(xiàn)一個自己版本的等待超時呢。 閱讀全文
posted @ 2007-11-26 14:52 lymons 閱讀(2502) | 評論 (0) 編輯 |



我的個人簡歷第二頁