原创 GCHandle

我們在使用c#託管代碼時,內存地址和GC回收那不是我們關心的,CLR已經給我們暗箱操作。 但是如果我們在c#中調用了一個非託管代碼,比如vc的DLL,而且他有個回調函數,需要引用c#中的某個對象並操作, 這時候你就得要小心了。 要是

原创 C# 如何實現接口事件

接口可聲明事件。 下面的示例演示如何在類中實現接口事件。 實現接口事件的規則與實現任何接口方法或屬性的規則基本相同。 在類中實現接口事件 在類中聲明事件,然後在適當的區域調用該事件。 namespace ImplementInterfa

原创 VC 用一個函數處理所有菜單消息

   當點擊菜單需要執行的代碼段很短,且有多個這樣的菜單項時,我就用一個函數來響應點擊消息,不用爲菜單逐個添加消息映射,代碼顯得簡短而整潔。    當然,你可以用ON_COMMAND_RANGE方式,但這種方式的用起來很不便,因爲菜單項I

原创 VC 如何用代碼實現消息映射

       QT,C#可在代碼中關聯事件和事件函數,且關聯可取,極其方便。反觀VC,只能用宏關聯,且需程序一開始就關聯消息和消息函數,運行中不可取消關聯。MFC如此包裝很不優雅。在用代碼創建控件和菜單,或想用一個消息函數處理多個消息時,

原创 QT知識

1. 編譯時出現multiple definition of .......     提示某個類或類的函數定義重複了,可檢查下.pro文件,看某個類的文件是否在SOURCES +=或HEADERS +=中被重複添加了    

原创 以自定義結構或類作爲信號和槽的參數

        在QT中如何用自定義結構作爲信號和槽的參數,在網上查了一通,用人說要用qRegisterMetaType註冊結構,還有說要爲結構使用宏Q_DECLARE_METATYPE。不知道是不是他們的版本太舊。經本人驗證,既無需註冊

原创 Wireshark命令行工具tshark使用小記

原文地址:http://www.cnblogs.com/liun1994/p/6142505.html Wireshark命令行工具tshark使用小記 1、目的   寫這篇博客的目的主要是

原创 在C#中使用Spire.doc對word的操作總結

在最近的工程中我們要處理一些word文檔。通過在網上的大量搜索,我發現大多數軟件功能不是不完整就是有重複。極少數可以完全實現的word組件又要收費。功夫不負有心人,終於找到了可以滿足我們需要的免費的C# word程序庫。爲了和其他的作

原创 編寫可維護軟件的10大要則

最近看了一本書叫《代碼不朽》,書中列出了編寫可維護軟件的10大要則。該書譯自老外的著作,看來國外的研究者對如何提高軟件的質量已有一些理論化的指導,並且有一些量化的指標。對於書中個別觀點見仁見智,不過對於我們

原创 VRRP幀格式

      最近在寫一個生成各種網絡封包的功能模塊,其中寫到VRRP時,網上搜到的關於VRRP幀格式的描述,好多都是錯的,最後在清默網絡http://www.023wg.com/kkxpz/78.html搜到的纔是正確的。       

原创 【轉】將QT開發的界面程序封裝成DLL,在VC中成功調用

最近手頭的一個項目需要做一個QT界面,並且封裝成DLL,然後再動態調用DLL給出的接口函數,使封裝在DLL內部的QT界面跑起來,在網上查了很多資料,今天終於成功了,經驗不敢獨享,因爲CSDN給了我很多幫助,將心得寫在這裏供大家參考。  P

原创 設計模式概要

寫程序久了,單個項目代碼量大了,就會思考如何用好的方式來組織自己的代碼,使代碼有更好的結構性。最近讀了一本劉偉老師編寫的《設計模式的藝術,軟件開發人員內功修煉之道》,此書結合實例進行講解,易於理解,受益匪淺。現將書中所列24種設計模式歸納

原创 Ethernet Type,IP Head Protocol Number

終於找到Ethernet Type的來源,原來這玩藝可以到IEEE去付費申請, 申請地址:http://standards.ieee.org/develop/regauth/ethertype/index.html 當前最新的Ether

原创 InstallShield 2015 Premier的Basic MSI Project如何在卸載時刪除殘留的文件

先說下緣由,我的程序在運行時會在安裝目錄下生成數個文件,但卸載程序時,會卸載不完全,安裝目錄及其中的新生成文件會殘留。 我用InstallShield 2015 Premier新建工程時選的Basic MSI Project. 如果你新建

原创 關於tshark的configuration profile

1.默認配置 安裝wireshark之後,其配置文件默認放在%AppData%\Roaming\Wireshark\preferences 當未對tshark指定configuration profile