青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 24,  comments - 62,  trackbacks - 0

Windows下的C++程序員在開發(fā)圖形用戶界面時,首先想到可能就是MFC了.對于GTK+這種GNU/Linux上出生出來的東西,就感到陌生了.GTK+是類似于MFC的圖形界面庫,跟MFC不同的是,它不是用C++,而是用C語言實現(xiàn)了面對對象的機制,但能與許多語言綁定,并具有跨平臺的特性.比如與Python的結(jié)合,就產(chǎn)生初識PyGTK"就介結(jié)了其在Windows平臺的安裝.

在Windows開發(fā)GTK+的應(yīng)用程序,首先需要其在Windows版本下的庫文件,下載gladewin32項目中的gtk+-win32-devel安裝包進行安裝.我這里使用VS2005進行配置,因為相對于其他的環(huán)境,大家對于此IDE更為熟悉.接下來我將一步步介紹我在對GTK/Glande3說Hello時碰到的問題與解決方法.

丑陋的Hello World

任何像我一樣急切的人,都希望用最少的代碼,看一下GTK+的世界是怎么樣的.新建一"Win32 項目",然后向其添加gtk.c文件.

/*  file gtk.c  */ 
#include  < gtk / gtk.h > 

int  main( int  argc,  char *  argv[])
{
    GtkWidget *  window;
    gtk_init ( & argc,  & argv);

    window  =  gtk_window_new (GTK_WINDOW_TOPLEVEL);
    
    gtk_window_set_title (GTK_WINDOW (window),  " Hello World " );
    gtk_widget_show (window);
    gtk_main();

    return   0 ;
} 

現(xiàn)在麻煩的事情到了,設(shè)置相關(guān)的頭文件和庫文件.設(shè)置頭文件,右鍵點擊項目名,然后選擇屬性.然后在"常規(guī)"-"附加包含目錄"中設(shè)置你安裝gtk+-win32-devel時對應(yīng)的頭文件目錄.然后再設(shè)置庫文件,需要gtk-win32-2.0.lib,glib-2.0.lib,gobject-2.0.lib.

p1_4.jpg
p2_thumb.jpg p3_thumb.jpg

設(shè)置完好后,你就可以編譯運行了,一個什么都不干的丑陋的windows窗體出現(xiàn)你面前了.若編譯不通過,缺少某些頭文件的話,查看出錯信息,然后用windows查找對應(yīng)頭文件路徑,再設(shè)置.若連接出錯,很可能在設(shè)置庫文件出錯了,同理,設(shè)置相應(yīng)的庫文件路徑.程序代碼很簡單,定義一個windows窗體指針,然后創(chuàng)建窗體和定義窗體標題,接著就是顯示了,和gtk主循環(huán)了.

p4_2.jpg

讓GTK+有點知覺

或許你發(fā)現(xiàn)了,點擊窗體中的"X"關(guān)閉按鈕,雖然窗體消失了,但是黑色的命令窗口還在,發(fā)現(xiàn)"任務(wù)管理器"中程序還在運行著.對,它并沒有像你想的那樣,在點擊"X"關(guān)閉按鈕結(jié)束掉程序.這些是需要你告訴程序該怎么做的.我們需要在代碼中添加相應(yīng)的事件處理函數(shù). 新增加了destroy函數(shù),它就是事件處理函數(shù),在gtk也可叫做信號處理函數(shù),因為gtk中用信號來進行事件的通知.destory函數(shù)的形參是有約定寫法的,這個大家可以參見具體的手冊.在主程序中,還需要將這一函數(shù)與具體的信號進行關(guān)聯(lián),見第17行.

在完成這些工作后,你再點擊"X"按鈕時,會發(fā)現(xiàn)"命令行窗口"會出現(xiàn)"按任意鍵繼續(xù)",程序是真正地退出了.

/* file gtk.c */
#include 
static void destroy( GtkWidget *widget,
                    gpointer   data )
{
    gtk_main_quit ();            //退出gtk主循環(huán)
}

int main(int argc, char* argv[])
{

    GtkWidget* window;
    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    
    gtk_window_set_title (GTK_WINDOW (window), "Hello World");
    g_signal_connect (G_OBJECT (window), "destroy",    G_CALLBACK (destroy), NULL);

    gtk_widget_show (window);
    gtk_main();


    return 0;
}

讓黑黑的命令行窗口消失

有些人會對這個gtk應(yīng)用程序總會伴隨著黑黑的命令行窗口感到不爽,包括我自己在內(nèi).不知道gtk程序在gnome下也是這樣,我沒有試過,不知道.現(xiàn)在我就使用windows平臺的特定方法,來讓它消失吧,就是使用WinMain做為主函數(shù).這方法或許不是最正規(guī)的做法,但我看來卻有效.如果要考慮到跨平臺的話,可以用條件編譯處理下.

/* file gtk.c */
#include 
#include 
static void destroy( GtkWidget *widget,
                    gpointer   data )
{
    gtk_main_quit ();            //退出gtk主循環(huán)
}

int WinMain(HINSTANCE hInstance,
            HINSTANCE hPrevInstance,
            LPSTR lpCmdLine,
            int nCmdShow
            )
{
    //為應(yīng)付gtk_init所需要的參數(shù)
    int argc=1;    
    char* commandLine={"gtkApplication"};
    char** argv = &commandLine;

    GtkWidget* window;
    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    
    gtk_window_set_title (GTK_WINDOW (window), "Hello World");
    g_signal_connect (G_OBJECT (window), "destroy",    G_CALLBACK (destroy), NULL);

    gtk_widget_show (window);
    gtk_main();


    return 0;
}

好啦,現(xiàn)在再編譯運行,命令行窗口沒有了.你會發(fā)現(xiàn)真正的win32窗體了.但是在開發(fā)中,我建議用gtk時,還是讓命令行窗口顯示出來,因為gtk在出錯時,會把一些有用的信息打到命令行窗口中,這對你的幫助會很大.

posted @ 2008-03-23 15:18 len 閱讀(3630) | 評論 (3)編輯 收藏

自從去年底娛樂圈曝出了"艷照門"事件后, 小Q就開始注意自己的私密文件了,在網(wǎng)上google加密軟件,想把那些珍藏的AV小電影和情感小日記加密起來,防止一個不小心被人公布.網(wǎng)上的私人出品的小加密軟件不敢用,怕被別人留了后門,至于安全性也沒有保證.后在網(wǎng)上經(jīng)高手指點,使用WinRAR軟件的加密功能,把一個個文件壓縮成包,并設(shè)置了密碼.這東西倒是簡單,但是小Q常常需要回顧一下這些小電影,以解單身之苦,偶爾又寫下日記.這樣一來,常常就需要輸入密碼,解壓,解渴,壓縮,麻煩又耗時,且WinRAR密碼又不能太簡單,不然有被暴力破解的可能.

小Q又在忙活了,湊巧被密友小A看到,將情況如實向小A說了.小A是個計算機迷,知道小Q需求后,立即問到:你怎么不用Windows自帶的EFS加密呀?

小Q:什么是EFS加密呀?

小A:EFS阿,就是Encryption File System,反正跟你說英語也不清楚,就是加密文件系統(tǒng),是Windows 2000開始所特有的一個實用功能,對于NTFS卷上的文件和數(shù)據(jù),都可以直接被操作系統(tǒng)加密保存.EFS加密是基于公鑰策略的,安全的很.

小A就是這樣喜歡賣弄一下英語和專業(yè)詞匯,這樣才顯得水平高.

小Q:那你說的公鑰策略是什么呀?

小A:公鑰要這可要從加密領(lǐng)域說起.就拿你用WinRAR加密文件來說吧,WinRAR是使用DES對稱加密算法,也就是加解密都是用同一個密碼.還再教你個新詞,搞計算機的人,密碼不叫密碼,要說成密鑰,相當(dāng)于開鎖的鑰匙,這樣才顯得X.而公鑰策略呢,加解密不是用同一密碼,一般加密的叫公鑰,解密的叫私鑰.

小Q:阿,弄得這么麻煩呀,那我給文件加個密后,輸入密碼后,怎么知道私鑰是什么呀?

小A:這個EFS加密呀,不用你輸入密碼.它在加密時,會自動為你生成公鑰和私鑰,公鑰和私鑰的長度很長.打個比方,如果你平時用到密碼很長很復(fù)雜,你會怎么辦呢?是不是把密碼抄在本子什么的,然后用到的時候拿出來看呀.這公鑰和密鑰的信息就跟所謂的證書綁定在一起了,也就相當(dāng)于小本子.

小Q:阿,私鑰自動生成放在電腦里,那不是相當(dāng)于還是沒有加過密,不安全呀?

小A:私鑰是放在你的硬盤上,但是windows用你的帳戶信息為依據(jù)又加了層密.如果你能用你的用戶帳號登陸系統(tǒng),也就完成了驗證工作.如果你用另外個帳號登陸的話,那些EFS加密過的文件,就無權(quán)獲取了.即使你不通過windwos系統(tǒng),獲得了存儲密鑰的物理空間,也是無法進行解密的.這樣才顯得安全.

小Q:你說得這些,我也不是怎么懂,就說說怎么用這個EFS吧.

小A:好的.這個EFS呀,正如我上面所說的,要在Windows2000以上的系統(tǒng)才可以,還有一點,這樣高級的功能,家庭版(windows xp home, windows vista home)可用不了.右擊你需要加密的文件和文件夾,選擇"屬性",然后點擊"屬性"對話框的"高級...",在"高級屬性"中勾選上"加密內(nèi)容以便保護數(shù)據(jù)"即可.如果不想加密了的話,去掉勾選即可.

p1 ? p2

?

小Q:好了,這么簡單,學(xué)會了.

小A:還沒有好呢,再跟你說點.不然到時候,你重裝系統(tǒng),打不開加密的文件又要哭了.我說過這EFS是用公鑰策略的,如果沒有私鑰是你是打不開加密過的文件.然而你重裝系統(tǒng)后,原來私鑰是由用戶信息加密過的,即使你重新取了相同的用戶名還是不行的.所以呀,你要裝原先的密鑰提前備份好,這樣加密過的文件,無論在你的電腦里,還是轉(zhuǎn)移到其他NTFS的格式的硬盤里,都可以打開.密鑰是與證書關(guān)聯(lián)的,這樣我們就要做好證書的備份工作.我簡要說下證書備份吧.在開始菜單的"運行"中輸入certmgr.msc,打開證書管理終端,在個人-證書中,會看到一個預(yù)期目的為"加密文件系統(tǒng)"的證書,這是在第一次使用加密后自動生成的.右擊該證書,在所有任務(wù)中,選擇"導(dǎo)出...",通過證書導(dǎo)出向?qū)В凑仗崾具x擇對應(yīng)的選項即可.

p3 p4

在輸入密碼,選擇存儲位置后,你會看到你所取名的xxx.pfx文件.下次你重裝系統(tǒng)或在別的機子要打開加密的文件,只要要雙擊.pfx文件,按向?qū)?dǎo)入即可.這個.pfx文件可要保存好,不要讓人拿去了.這個文件相當(dāng)于鑰匙,誰有這把鑰匙,誰就能打開加密文件了.

?

posted @ 2008-03-16 15:37 len 閱讀(2039) | 評論 (3)編輯 收藏

PyGTK讓你用Python輕松創(chuàng)建具有圖形用戶界面的程序.底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發(fā)在GNOME桌面系統(tǒng)運行的功能完整的軟件.

PyGTK真正具有跨平臺性,它能不加修改地,穩(wěn)定運行各種操作系統(tǒng)之上,如Linux,Windows,MacOS等.除了簡單易用和快速的原型開發(fā)能力外,PyGTK還有一流的處理本地化語言的獨特功能.

PyGTK是自由軟件,所以你能幾乎沒有任何限制的使用,修改,分發(fā),研究它,它是基于LGPL協(xié)議發(fā)布的.

如果你對上面提到的GTK+,也不了解的話,那允許再對它也進行一番介紹.GTK+,用C語言開發(fā)的,具有跨平臺的GUI庫,它是GNOME桌面系統(tǒng)(如果你在用Linux,一定不陌生)和GIMP圖象編輯器的開發(fā)工具箱.它是世界上許多程序員的選擇,對他們來說,國際化的支持是必要的,而且性能也總是他們考慮的因素.與GTK同一領(lǐng)域的還有Qt庫,它是由商業(yè)公司開發(fā)的C++圖形庫,雖然它也有免費的.

在windows平臺的安裝和開發(fā)

安裝PyGTK只需執(zhí)行下列步驟:

  • 安裝Python2.4或以上的windows版本[www.python.org]
  • 從GTK+/Glade的windows版本的GTK+ 2.10開發(fā)運行時環(huán)境[gladewin32.sourceforge.net]
  • 從PyGTK網(wǎng)站下載安裝PyCairo,PyGobject和PyGTK安裝包,注意這些需全部安裝才能使PyGTK工作[pygtk.org]

或許你對這些步驟還感到麻煩,或者對Python不熟悉的話,那也沒有關(guān)系,直接下載一鍵安裝包all-in-one installer,為你配置好全部運行時環(huán)境.

看看開發(fā)環(huán)境是否配置正確,將下列代碼作為Python腳本或者在Python交互控制臺下輸入.如果正確的話,應(yīng)該有一個標題為"Hello World"的windows的空窗口呈現(xiàn)在你面前.

如果不能運行的話,有可能會出現(xiàn)一個不能成功加載dll的錯誤提示,這是因為缺少iconv.dll.這時需要只需從網(wǎng)上下載過來,拷貝至windows/system32目錄下即可了.

import gtk
window = gtk.Window()
window.set_title("Hello World")
window.show_all()

gtk.main()
posted @ 2008-03-12 19:43 len 閱讀(10244) | 評論 (3)編輯 收藏

PC-lint for C/C++是由Gimpel軟件公司于1985年開發(fā)的代碼靜態(tài)分析工具,它能有效地發(fā)現(xiàn)程序語法錯誤、潛在的錯誤隱患、不合理的編程習(xí)慣等。

FlexeLint for C/C++是在PC_lint在windows平臺獲得成功后,同樣由Gimpel公司開發(fā)的,以源代碼形式發(fā)布的,在Unix/Linux平臺上的靜態(tài)代碼分析工具。

本文主要介紹PC-lint的安裝與配置,因此是在windows平臺上進行討論。

PC-lint支持幾乎所有流行的編譯器和IDE環(huán)境,可能因為其發(fā)展歷史和面對專業(yè)程序員群體的原因,它是以命令行加配置文件的形式進行使用,所以其使用習(xí)慣跟現(xiàn)在常見的windows軟件不同。

現(xiàn)以PC-lint與VS2005進行集成來說明:

將PC-lint釋放到某一目錄下,如:D:\Program Files\pclint.將新建一std.lnt文件在主目錄中,并將添加上以下的內(nèi)容

au-sm.lnt
co-msc80.lnt
lib-mfc.lnt
lib-stl.lnt
lib-w32.lnt
lib-wnt.lnt
lib-atl.lnt
options.lnt  -si4 -sp4

-i "C:\Program Files\Microsoft Visual Studio 8\VC\include"
-i "C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include"
-i "C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include"
-i "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include"

注意:-i后面為相應(yīng)的vc頭文件目錄路徑,而一系列xxx.lnt是語法配置規(guī)則,決定了按什么規(guī)則進行檢查,以后可以根據(jù)需要進行增減. 寫在配置文件中相應(yīng)的的xxx.lnt從lnt子目錄中,拷貝到主目錄中.(這一步很重要) 在vs2005中的工具->外部工具中,點擊"添加",新建一個外部工具.標題可以任意,可取(pc_lint);命令為:D:\Program Files\pclint\LINT-NT.EXE;參數(shù)為:-i"D:\Program Files\pclint" std.lnt "$(ItemFileName)$(ItemExt)";初始目錄為:$(ItemDir),并將下面的"使用輸出窗口"勾選上. 接下來,就可以寫一段程序,在工具菜單中選擇pc_lint 來進行檢查了.如果你編寫的程序有不符合定義的規(guī)范,則會在輸出窗口中出現(xiàn)相關(guān)的信息.

posted @ 2008-01-30 15:18 len 閱讀(4278) | 評論 (0)編輯 收藏
僅列出標題
共3頁: 1 2 3 

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99精品视频免费全部在线| 国产精品xxxxx| 国产综合欧美在线看| 亚洲图色在线| 性高湖久久久久久久久| 国产精品一区视频| 午夜激情一区| 久久亚洲综合色| 在线观看的日韩av| 欧美va天堂在线| 在线亚洲高清视频| 久久不射网站| 最新中文字幕一区二区三区| 欧美日韩在线免费视频| 国产精品99久久久久久白浆小说| 欧美一级精品大片| 亚洲国产福利在线| 欧美午夜电影在线| 久久亚洲风情| 99在线精品视频在线观看| 久久精品国产精品亚洲精品| 亚洲国产精品精华液网站| 欧美日韩另类视频| 欧美专区亚洲专区| 亚洲伦理一区| 久久中文在线| 亚洲永久免费精品| 亚洲成人中文| 国产精品欧美一区二区三区奶水| 久久婷婷久久一区二区三区| 日韩网站在线观看| 鲁鲁狠狠狠7777一区二区| 亚洲一区影院| 亚洲三级免费| 国产又爽又黄的激情精品视频| 欧美精品久久久久久久久久| 久久九九国产| 亚洲亚洲精品三区日韩精品在线视频 | 国产精品国产馆在线真实露脸| 午夜精品一区二区三区四区| 欧美好吊妞视频| 欧美一区二区性| 亚洲视频精品| 亚洲人成网站影音先锋播放| 国产精品永久入口久久久| 欧美激情一区二区三区在线视频| 欧美在线不卡| 亚洲欧美日本视频在线观看| 亚洲毛片播放| 日韩亚洲欧美成人| 亚洲国产一区视频| 午夜亚洲视频| 亚洲一区二区视频| 一区二区三区视频在线看| 亚洲国产高清一区二区三区| 国产亚洲视频在线观看| 国产日产亚洲精品| 国产欧美日韩在线播放| 国产精品久久久久久久久久直播| 欧美日韩免费观看一区三区| 欧美乱人伦中文字幕在线| 欧美激情国产精品| 欧美精品久久久久久久久久| 欧美精品久久一区| 欧美日韩在线视频观看| 欧美日韩在线播放| 国产精品白丝av嫩草影院| 欧美午夜片欧美片在线观看| 欧美视频在线看| 国产精品爱啪在线线免费观看 | 亚洲国产一区二区三区在线播| 欧美激情一区二区三区在线视频观看 | 欧美国产综合| 亚洲国产精品一区二区www| 欧美激情第六页| 亚洲激情精品| 9久草视频在线视频精品| 中文有码久久| 久久精品一区中文字幕| 久久久午夜视频| 免费不卡亚洲欧美| 欧美日韩大陆在线| 国产精品亚洲一区二区三区在线| 国产老女人精品毛片久久| 一区二区三区在线不卡| 日韩一级大片| 久久精品视频在线观看| 欧美国产激情二区三区| 一级日韩一区在线观看| 欧美怡红院视频一区二区三区| 欧美承认网站| 国产精品色在线| 亚洲国产毛片完整版| 亚洲男女毛片无遮挡| 久久久91精品| 99国内精品| 久久精品亚洲| 午夜在线观看欧美| 美女亚洲精品| 欧美激情一区二区三区全黄 | 亚洲图片欧美一区| 久久综合久久综合久久| 欧美日韩亚洲综合| 国产综合婷婷| 亚洲一区三区电影在线观看| 美国成人直播| 亚洲午夜高清视频| 欧美成人蜜桃| 国产亚洲欧美日韩在线一区| 一本到高清视频免费精品| 久久久人成影片一区二区三区观看| 亚洲欧洲日本国产| 久久精品国产清高在天天线| 国产精品sss| 亚洲精品女人| 蜜臀av在线播放一区二区三区| 亚洲视频日本| 欧美精品三区| 亚洲国产精品高清久久久| 久久精品中文字幕一区| 国产麻豆精品theporn| 一区二区三区 在线观看视| 欧美护士18xxxxhd| 久久精品国产成人| 国产欧美日韩一区| 亚洲男人的天堂在线aⅴ视频| 91久久精品久久国产性色也91| 欧美一级一区| 国产欧美日韩视频| 性刺激综合网| 亚洲宅男天堂在线观看无病毒| 欧美日韩国产精品一区| 亚洲每日更新| 欧美黄污视频| 久久久精品久久久久| 亚洲欧洲99久久| 国产偷自视频区视频一区二区| 午夜精品久久久| 亚洲欧美偷拍卡通变态| 国产精品亚洲综合色区韩国| 性欧美大战久久久久久久免费观看 | 99精品99久久久久久宅男| 亚洲激情成人在线| 欧美精品电影在线| 亚洲神马久久| 亚洲自拍三区| 国产一区二区三区电影在线观看| 久久爱另类一区二区小说| 久久激情视频| 亚洲人成在线观看一区二区| 亚洲靠逼com| 国产伦精品一区二区三区视频孕妇| 久久精品水蜜桃av综合天堂| 国产日韩欧美一区二区三区在线观看 | 欧美国产日韩精品| 一区二区三区视频观看| 亚洲无线一线二线三线区别av| 欧美日韩专区在线| 欧美与黑人午夜性猛交久久久| 欧美亚洲免费在线| 在线播放不卡| 日韩视频在线免费| 国产亚洲一级高清| 欧美成年人网| 国产精品a级| 免费久久久一本精品久久区| 欧美夫妇交换俱乐部在线观看| 一区二区三区欧美在线| 欧美一区二粉嫩精品国产一线天| 亚洲第一精品福利| 中文一区二区在线观看| 激情亚洲网站| 一区二区欧美国产| 亚洲高清二区| 亚洲综合欧美| 99香蕉国产精品偷在线观看| 久久国产一区| 亚洲午夜久久久久久久久电影网| 久久精品国产精品亚洲精品| 一个色综合av| 鲁大师成人一区二区三区| 午夜精品久久久久99热蜜桃导演| 欧美jizz19hd性欧美| 久久精彩视频| 国产精品成人在线观看| 欧美成人免费小视频| 国产美女精品人人做人人爽| 亚洲精品在线三区| 亚洲国产日韩综合一区| 欧美一区二区三区久久精品茉莉花| 亚洲人成网站在线播| 久久国产精品99久久久久久老狼| 亚洲午夜小视频| 欧美电影资源| 你懂的视频一区二区| 国产在线播放一区二区三区| 亚洲在线一区二区三区| 在线性视频日韩欧美| 欧美a级理论片| 久久免费的精品国产v∧|