原创 從C#程序中調用非受管DLLs

從所周知,.NET已經漸漸成爲一種技術時尚,那麼C#很自然也成爲一種編程時尚。如何利用浩如煙海的Win32 API以及以前所編寫的 Win32 代碼已經成爲越來越多的C#程序員所關注的問題。本文將介紹如何從C#代碼中調用非受管DLLs。如

原创 【圖】用ESP定律脫殼

用堆棧平衡定律脫殼【附圖】 用PEiD查殼,看【圖1】 用OD載入,【圖2】,注意ESP的值變化 F8單步,來到這,看見ESP值變化,在命令窗口中輸入【圖3】 繼續F8,單步,走到我們想到的地方【圖4】現在到了OEP了,接下來脫殼【圖5

原创 C#的運行機制

.net框架下的所有語言,實際上都是把代碼翻譯成中間語言(MSIL),然後生成標準程序集。無論是VB語言還是C#語言,它們使用的命名空間和類庫都是中間語言書寫的,所以能夠相互操作和相互調用。從本質上講,就是在個別語言之下加上了一個共同解釋

原创 談談對APC的一點理解

談談對APC的一點理解 異步過程調用(APCs) 是NT異步處理體系結構中的一個基礎部分,理解了它,對於瞭解NT怎樣操作和執行幾個核心的系統操作很有幫助。 1) APCs允許用戶程序和系統元件在一個進程的地址空間內某個線程的上下文中執

原创 java 編譯時出現'\ufeff' 編碼錯誤

使用QtCreator 編寫Android 上的java程序時,編譯總是出現'\ufeff' 錯誤。解決辦法:取消該java文件的UTF-8 BOM,使用無BOM編碼。在QtCreator 工具-> 選項 -> 文本編輯器 -> 行爲 

原创 C#實現多國語言的界面切換

在PictureStudio中,我需要實現多國語言的界面切換,而且切換各種語言版本的時候希望程序是動態的加載語言,不希望切換語言後重新啓動程序。 實現這樣的功能可以有很愚蠢的方法,比如說你可以在程序中爲界面上的所有國家的文字信息,在代

原创 QML中與Loader source 中的signal與property交互問題

主要內容: 1.  Loader中的signal信號交互; 2.  Loader中的property屬性交互; 看如下代碼: //LoadedModule.qmlimport QtQuick 2.0 Rectangle {

原创 CLR內存管理之釋放非託管資源

上篇文章中我提到,CLR通過棧指針給變量分配內存空間,通過GC來釋放不再引用的內存空間。GC雖然減少了程序員處理內存的困難,但它也有侷限性,它不能處理像文件句柄、網絡連接、數據庫連接這樣的非託管資源。在定義一個類時,我們使用兩種機制來自

原创 多線程的那點兒事(之C++鎖)

 編寫程序不容易,編寫多線程的程序更不容易。相信編寫過多線程的程序都應該有這樣的一個痛苦過程,什麼樣的情況呢?朋友們應該看一下代碼就明白了, [cpp] view plaincopy void data_proce

原创 如何使用vs2008 C#程序聯合調試C++dll

調試方法:【dll工程和調用dll的exe工程在同一個解決方案中】 dll工程,屬性-配置屬性-調試-把命令 改爲調用該dll的C# exe工程的bin\Debug\*.exe dll工程,屬性-配置屬性-調試-把調試器類型 設置爲混合

原创 Qt+CodeBlocks+MinGw環境配置

1、下載Code::Blocks,安裝到d:\CodeBlocks 2、下載MinGw4.4.0,安裝到d:\CodeBlocks\MinGw 3、配置環境變量 右鍵“我的電腦”“屬性”, 選擇“高級”,“環境變量”,

原创 x86—EFLAGS寄存器詳解

鑑於EFLAGS寄存器的重要性,所以將這一部分內容從處理器體系結構及尋址模式一文中單獨抽出另成一文,這部分內容主要來自Intel Developer Mannual,在後續的內核系列中遇到的許多和EFLAGS寄存器有關的內容將直接從本文

原创 SEH異常處理學習總結

前一段時間,在看異常處理一章內容的時候,發現這一部分還真的挺有尿水:)所以上網搜了一下有關內容,呦嗬,還挺豐富的。當然有些自己還是看不懂,現在就將這些寶貝拿出來跟大家共享一下。首先我們看一下使用異常處理的幾種情況:A. 用來處理非致命的錯

原创 C#中的using(){}

using這個關鍵字在C#中共用三個用法:    1、用在命名空間裏    如:using System;  這個誰都知道,爲了不用寫類的全名(可以把System.Console  寫成  Console)    2、可以用來對一個類進

原创 關於THREADINFO結構

線程爲窗口維護一個threadinfo結構,  threadinfo數據結構:  ------------------  |登記消息隊列指針|  ------------------  |虛擬輸入隊列指針|  --------------