Time of Update: 2018-12-05
boost隨機數。直接包含random.hpp就可以使用。要聲明一個generator來產生隨機數,比如boost::hellekalek1995 generator(13);boost::hellekalek1995是一個隨機數產生器,13是個隨機數種子。然後聲明一個隨機數分布(uniform random
Time of Update: 2018-12-05
LBroadcaster和LListener是配對的,從LListener繼承的類可以獲得訊息並處理,從LBroadcaster繼承的類可以廣播訊息出去。所以一般可以將view類從LListener繼承,把view上的控制項類從LBroadcaster繼承,然後控制項將控制項AddListener到view上去,這樣控制項有訊息的時候就可以在LListener的ListenToMesseng裡處理了。LCommander是一個用來處理菜單介面的類,處理菜單的時候有FindCommandStatu
Time of Update: 2018-12-05
標準庫提供了個智能針auto_ptr,能夠自動管理指標的生命週期,auto_ptr在同一時間只能有一個auto_ptr管理指和其指向資源。boost提供了幾種智能指標:scoped_ptr/scoped_array,很簡單,不允許複製或相互賦值,只適用於為指標的唯一所有者。shared_prt/shared_array,使用引用計數的方式管理對象的生命週期,傳遞指標後調用者和被調用者都有指標的所有權。weak_ptr是對shared_prt的補充,它能擁有指標的使用權不具有所有權,常與share
Time of Update: 2018-12-05
boost::utility是一個大雜燴,有很多不好歸類的小工具,函數,類等。1.checked_delete() && checked_array_delete()在編譯器靜態地檢查即將被delete的指標。比如個只聲明但並未用new為其分配空間的指標,如果delete它,編譯器一般只會為警告或者根本略過,如果使用這兩個函數的話會強制將其作為錯誤對待。2.next() & prior()template <class T> inline T next(T
Time of Update: 2018-12-05
ref的目的是對於一個模板函數,在傳和傳引用都可以的時候,把的權利下放給使用者。在參數上套一個ref(),顯式告訴編譯器這裡引用傳遞,否則就是值傳遞。例:#include <iostream>#include <boost/ref.hpp>using namespace std;using namespace boost;struct QQ{ int k;};template <typename T> int foo(T a){ typedef
Time of Update: 2018-12-05
用MinGW編譯的wxWidget靜態庫,編譯時間正常,用編譯後的庫編譯它的sample也正常,但是我自己的程式用它編譯就會報連結錯誤.如果編譯成動態庫又一切正常,而且如果用VC6編譯靜態庫也是正常的.這個問題困擾我好幾天了.昨天晚上試著把wxWidget編譯成表態的單個庫,再編譯我的程式居然好用了,很是奇怪,睡覺的時候突然想到會不會和gcc編譯時間連結庫的順序有關,因為單個庫的時候順序是沒有關係的.今天早上試了一下,果然是這個原因,如果把wxcore庫放在wxbase庫的後面就會出現連結錯誤,
Time of Update: 2018-12-05
1,ComboBox簡單 綁定 <ComboBox Grid.Row="1" Grid.Column="3" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top" Name="lstSex" Width="100" Margin="5,4,0,0" SelectedIndex="0"> <ComboBoxItem Content="先生" /> <ComboBoxItem
Time of Update: 2018-12-05
有的時候需要用python處理位元據,比如,存取檔案,socket操作時.這時候,可以使用python的struct模組來完成.可以用struct來處理c語言中的結構體.struct模組中最重要的三個函數是pack(), unpack(), calcsize()pack(fmt, v1, v2, ...) 按照給定的格式(fmt),把資料封裝成字串(實際上是類似於c結構體的位元組流)unpack(fmt, string)
Time of Update: 2018-12-05
concept_check是boost的概念檢查庫,在使用模板錯的時候編譯器給出的資訊一般都看不懂,使用concept_check能使編譯器給出的資訊易懂一些。concept的使用很簡單,用在一個模板函數裡的時候用function_requires:template <class T>void generic_library_function(T x){ function_requires< EqualityComparableConcept<T> >(
Time of Update: 2018-12-05
文章目錄 lexical_casttimer
Time of Update: 2018-12-05
gcc中,ld是鏈器程式,ar可將多個目錄檔案合成一個函數庫,如ar r liba.a a.o會從a.o中產生a這個庫。nm可以查看庫檔案的內容,如nm libstdc++.a。gcc部分參數:-L 定義串連的庫目錄-I 定義標頭檔目錄-o 產生的目的檔案名稱-O 加數字定義最佳化層級-g 產生調試資訊-c 只編譯不連結-fPic 產生相對位址代碼,可用於產生動態庫-static 強制產生靜態連結的程式-aout 產生a.out格式的檔案,缺少是elf-elf
Time of Update: 2018-12-05
wxPython程式所必須的五個基本步驟:1.匯入必須的wxPython包2.子類化wxPython應用程式類(*註:書上說是必須子類化,不過我實驗直接執行個體化wx.App也是可以的)3.定義一個應用程式的初始化方法4.建立一個應用程式類的執行個體5.進入應用程式的主事件迴圈(MainLoop())有兩種方式匯入wxPython包:老的方式和新的方式:老的方式包名叫wxPython,可以用from wxPython import wx或者from wxPython.wx from *來匯入。
Time of Update: 2018-12-05
以前一直都認為一個dll(或者exe)就是一個com組件,dll裡面不同的類就是不同的介面,CLSID就是用來標識一個dll或exe的。其實這種看法是錯誤的!!!組件不一定就是一個dll,一個dll中可以包含很多個組件,而且一般見到的dll裡也不止包含一個組件,一個dll裡的每個組件都有自己的CLSID和ProgID。對於ATL工程來說,一個ATL Object就是一個組件,很明顯,我們可以在一個工程裡加入很多個ATL
Time of Update: 2018-12-05
根據C++標準,如果const的引用被初始化為對一個臨時變數的引用,那麼它會使這個臨時變數的生命期變得和它自己一樣。class Ref{public: Ref() {cout << "Ref()" << endl;} virtual ~Ref() {cout << "~Ref()" << endl;}};Ref GetRef(){ Ref r; return r;}int main(){ const Ref&
Time of Update: 2018-12-05
這兒說的多線程是指posixthread庫。pthread_create建立線程,pthread_join等待線程結束。MPCreateSemaphore建立訊號量,MPSignalSemaphore發送訊號量,MPWaitOnSemaphore等待某個訊號量之後再繼續,MPDeleteSemaphore銷毀訊號量。可以在單獨的線程中建立NSAutoreleasePool管理線程的釋放池,甚至某個單獨的操作本身也可以在單獨的釋放池中。NSTimer不知道為什麼在modal dialog中不好用。
Time of Update: 2018-12-05
powerplant中,有嵌套view的話Click事件會首先被最裡層的view接受,如果裡層的view沒有改寫click函數的話會一直傳到LView的Click,這裡面的Click首先尋找這個view裡最裡層的LPane,然後調用最裡層LPane的Click,因為LControl也是從LPane繼承,所以如果view裡有控制項的話會執行控制項的事件。如果一個view裡要響應滑鼠點擊的事件可以重寫Click,但不要忘了在Click裡調用LView::Click把訊息傳出去,否則訊息鏈斷了就無法執
Time of Update: 2018-12-05
1.安裝基本系統,從 http://cdimage.debian.org/pub/ 下載testing的網路安裝光碟片刻盤安裝。2.裝完基本系統後設定sources.list為dlut:deb http://mirror.dlut.edu.cn/debian unstable main non-free contribdeb http://mirror.dlut.edu.cn/debian-non-US unstable/non-US main non-free contribdeb ftp:/
Time of Update: 2018-12-05
powerplant中,LCommander類處理訊息,它的命令被ObeyCommand處理,這個主要用來處理功能表命令,可以在FindCommandStatus中設定菜單的狀態。LCommander中命令處理是分級的,下級往上級傳,當前接收的那個是LCommander的一個靜態變數叫sTarget,可以用SwitchTarget來切換。sTarget所指的LCommander對象首先接收到命令,然後處理。我就曾經不小心用SwitchTargetw(NULL)使得當前沒有接收訊息的對象,所以菜單
Time of Update: 2018-12-05
今Apsara Infrastructure Management
Time of Update: 2018-12-05
HideMenuBar()和ShowMenuBar()可以用來隱藏和顯示系統菜單和dock。cocoa中使用NSCursor管理游標,NSCursor的set函數更改當前的游標,NSView和NSWindow等的resetCursorRects類可以定義游標在某個地區的形狀。用NSScreen管理螢幕。View類儲存了兩個矩形,儲存它在superview的座標位置的叫做frame,儲存view自身座標位置的叫做bounds。NSResponder響應訊息,firstresponder首先獲得訊息