顯示具有 CxxlMan 程式庫 標籤的文章。 顯示所有文章
顯示具有 CxxlMan 程式庫 標籤的文章。 顯示所有文章

2014年5月22日 星期四

delegate 2.2 元件

相較於先前的版本,改用 operator=()/operator+=() 取代 Bind() 的功能,operator-=() 取代 Unbind 的功能;成員函數不再能直接設定,而是先用 class bind 包裝之後再設定給 delegate。簡介如下:

  • 須搭配 CxxlMan 程式庫
  • 可代理一般函數指標或成員函數指標(須先用 bind 包裝),參數最多 10 個
  • 對於有回傳值的的格式,只能設定一筆函數指標資料,多次設定後 者會取代前者,若未設定函數指標資料,執行叫用將會 throw DelegateErr_NoBind
  • 對於無回傳值的的格式,可以設定多筆函數指標資料,且會傳回一個 DelegateID,此  ID 可刪除用
  • 設定的方式採用運算元 operator=()(用於取代,即原有的全刪除),或  operator+=()(用於增加)
  • 刪除的方式採用運算元 operator-=(ID)(只刪一個),或用 Clear() 全刪除

下載點:
https://www.dropbox.com/s/b1zht5aid8hrakc/delegate%202.2.7z
http://pan.baidu.com/s/1jG1bqCm

2014年5月19日 星期一

cxxl3d.tk 轉址失效

由於 cxxl3d.tk 轉址失效了,以下做臨時因應:




2014年4月18日 星期五

delegate 元件

相當於 c# 的 delegate、boost 的 function,下載點:

https://www.dropbox.com/s/2qwqb516v7fi47s/delegate%202.1.7z
http://pan.baidu.com/s/1kT0rOLx

- 須搭配 CxxlMan 程式庫
- 可代理一般函數指標或成員函數指標,參數最多 10 個
- 對於有回傳值的的格式,只能 bind 一筆函數指標,若多次呼叫
  Bind(), 後者會取代前者,若無 bind,執行函數物件叫用(operator())將
  會 throw DelegateErr_NoBind
- 對於無回傳值的的格式,可以 bind 多筆函數指標資料,用 Bind() 會
  傳回一個 DelegateID,此 ID 可給 Unbind() 刪除用

以下是示範程式,

2014年4月3日 星期四

CxxlMan 程式庫源碼

先要有一套 svn 使用端的工具,比如 TortoiseSVN,Checkout URL 填入 http://cxxlman.googlecode.com/svn,即可取得源碼。其內不包含 Make,僅是作為參考、瞭解之用。

程式庫的取得和用法在 http://cxxlman.cxxl3d.tk/




2013年10月13日 星期日

CxxlMan 程式庫注意事項--不要在建構函數中將 this 放入 Smart_Ptr

如下:
A::A()
{
  Smart_Ptr(this);
}
這樣從建構函數返回後,A 的物件也會被銷毀,最常發生的情況應如下:
void F(const Smart_Ptr<A> &A_Arg); // 假設沒有用 Smart_Ptr 保存 A
A::A()
{
  F(this);
}
常不自覺就犯下那樣的錯誤。

2013年9月24日 星期二

cxxlOIS 元件

OIS 是一個跨平台的處理輸入裝置的函式庫,以物件導向的方式設計。OIS可以支援的輸入裝置主要是鍵盤、滑鼠、搖桿,同時也支援力回饋裝置--引言自 與Ogre共舞:第六步,敲敲鍵盤、動動滑鼠

由於編寫使用 OIS 的程式碼也蠻繁雜的,再加上為了搭配 CxxlMan 函數庫,所以寫了這個元件,把 OIS 包裝起來,並提供隨時更改 Event Handler 和 Windows 的 HWND 的能力。

2013年6月8日 星期六

CxxlSocket 通訊元件

這元件主要在簡化使用 Winsock 的程式設計,提供 Server 和 Client 兩個部份,Server 可接受多個 Client 的全雙工連線,並採取一般比較容易使用的 Event 機制。

內含原始檔及範例,請解壓到 C:\CxxlSocket 讓範例所用的路徑符合,下載點:
https://www.dropbox.com/s/guykgvnw383u5cj/CxxlSocket.7z

2012年12月21日 星期五

SList

這是一個 template class,須和 CxxlMan 程式庫一起使用,主要在提供 cxxlList 沒法做到的任意節點的提取和增刪。

下載點:https://www.dropbox.com/s/1drtnz71k8sumjz/SLIST.HPP




2012年8月19日 星期日

CSmart_Ptr 智慧指標(計數器模式)

CSmart_Ptr 採用計數器技術,所以不能用於有循環參照的物件。

CSmart_Ptr 可放入任何種類的物件,包括 cxxlObject 物件,但已放入 Smart_Ptr、PSmart_Ptr 或 P2Smart_Ptr 的物件,不能再放入 CSmart_Ptr。而放入過 CSmart_Ptr 的物件也不能再放入其他智彗指標,包括 CSmart_Ptr。

下載點:

2012年7月1日 星期日

MLEditor 多國語言編輯器

這是 ML (多國語言插件) 的輔助程式,可幫助程式設計師建立 ML 所用的語言轉換檔( .Lang 的檔案) 。下載點:

https://www.dropbox.com/s/plo4mjd4nsrko4u/MLEditor%201.0.0.7z

內含不須安裝的執行檔和原始程式,若要在未安裝 vs2008 的電腦上直接執行,可能還要再安裝 Microsoft Visual C++ 2008 SP1 可轉散發套件 (x86)

2012年5月16日 星期三

多國語言插件

這是採用 CxxlMan 程式庫的機動化元件所做的插件,可以幫你寫的程式或其他插件可以有提供多國語言文字的處理功能,文字來源由語言轉換檔提供,依多國語言的需求編製相應的語言轉換檔,語言轉換檔只是一般的文字檔(但須是 Unicode 編碼)。

下載點:多國語言插件(7-01-2012 更新).7z

2012年4月11日 星期三