Time of Update: 2018-12-05
Direct3D基礎:D3DPRESENT_PARAMETERS部落格分類: DirectX 這個結構體很重要,內容是從網上轉來的: Cpp代碼 typedef struct _D3DPRESENT_PARAMETERS_ { UINT BackBufferWidth; UINT BackBufferHeight; D3DFORMAT BackBufferFormat; U
Time of Update: 2018-12-05
開始DX程式第一件事是建立DX對象,相當於初始化DirectX。LPDIRECT3D9X g_pD3D = Direct3DCreate9( D3D_SDK_VERSION);if(NULL == g_pD3D) return E_FAILE;每個程式都是由此開始的,而且寫法都一樣,參數必須是D3D_SDK_VERSION。建立裝置DirectX是位於硬體抽象層上的裝置,程式員通過訪問DX提供的介面來間接操作裝置。裝置大致分為1. HAL裝置。硬體抽象層的主要裝置,硬體加速即在此處理。2.
Time of Update: 2018-12-05
雖然是大公司的產品,QQ它還是會在我們的折騰下崩潰的,但是它總是崩潰的很優雅,還要彈出自己的對話方塊來結束。並且發送報告,去掉了系統預設的發送報告的對話方塊。所以一拍腦袋,想讓自己的程式崩潰的體面一點。自己想了大概的思路,覺得可以用一個進程來監控目標程式。的確也可以拿到了目標程式崩潰的資訊,知道它什麼時候崩潰的,也可以做額外的操作,但是這樣是沒辦法把預設的發送錯誤的對話方塊去掉的。然後又有人說是不是採用了類似鉤子的方法把這個東西在哪裡勾掉了。最後網上查了一番,發現SetUnhandledExce
Time of Update: 2018-12-05
dll的兩種調用方式,lib與dll區別 -
Time of Update: 2018-12-05
WinDbg學習筆記(一)--認識WinDbg一、前言 本人學習WinDbg已經有好幾天了,雖說技術掌握的還不太熟練,不過也總算是入門了在學習WinDbg的過程中,覺得WinDbg真的比OllyDbg難很多(不知道是不是習慣OllyDbg的緣故),所以就想做點筆記,那以後自己忘了也可以拿出來複習,也為同樣在學WinDbg的兄弟提供一點協助。文章寫得有點嗦,初學者應該可以很快看完,老鳥就可以飄過了…二、WinDbg簡介 WinDbg是微軟發布的一款免費而十分強大的調試工具。既然是微軟自
Time of Update: 2018-12-05
Q Directsound 與 Waveout 有何不同?A Waveout 是在32位的Windows上的一種老舊且過時,用來播放數字音訊的應用程式接口(ApplicationProgramming Interface,簡稱API)。舊的Windows作業系統(如Win9x WinNT4)在 Waveout 的完成度很高(因為 waveout 是針對這些作業系統設計的),如果你想獲得最好的效能,你應該在這些作業系統上使用 Waveout 輸出。然而 Waveout 的功能有所局限,它無法支援「
Time of Update: 2018-12-05
/** g711.c** u-law, A-law and linear PCM conversions.*///#include "stdafx.h"#include <stdio.h>#include "g711.h"#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */#define QUANT_MASK (0xf) /* Quantization field mask. */#define NSEGS (8) /*
Time of Update: 2018-12-05
在Win32應用程式中使用MFC類庫(轉) 轉寄 評論 2010-04-30 10:38 由於MFC中的輔助類,如 CFileDialog,CFileFind,CString等使用起來非常的方便如果用API來完成相應的工作,則需要自己完成大量的重複工作,使用 MFC的輔助類可以節省大量的開發時間,具體方法如下: 1.加入相應的標頭檔 由於在SDK程式中一定要包含windows.h標頭檔,所以
Time of Update: 2018-12-05
主 題: Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)可能是什麼問題? 作 者: icyboy1001 回複次數: 2 發表時間: 2008-1-11 9:18:45 本文內容: Expression: Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)可能是什麼問題? 2008-1-11
Time of Update: 2018-12-05
Qt中訊號槽的概念發表日期:2010-11-24 訊號槽是Qt中特有的概念。它使得程式員將不同的object綁定起來,而object對象間並不需要對相互瞭解。 Slots也是普通的c++方法,它們可以是virtual;可以被重載;可以使private、protected、public,可以像其它c++方法一樣有各種類型的參數。它們唯一的區別就是signal與slot是相互連結起來的,slot函數在每次signal函數被emit時會被調用。 標準的connect函數如下:
Time of Update: 2018-12-05
truct 結構體類型的大小計算 (2010-10-26 14:38:31)轉載標籤: 雜談分類: 面試筆試struct S1{ char c; int i;};問sizeof(s1)等於多少?聰明的你開始思考了,char佔1個位元組,int佔4個位元組,那麼加起來就應該是5。是這樣嗎?你在你機器上試過了嗎?也許你是對的,但很可能你是錯的!VC6中按預設設定得到的結果為8。 Why?為什麼受傷的總是我?請不要沮喪,我們來好好琢磨一下sizeof的定義 ——
Time of Update: 2018-12-05
最近寫程式的時候遇到了使用ifstream開啟含中文路徑檔案時失敗的問題,在網上翻了一下,發現這是一個普遍遇到的問題,在很多人的博文中也都給出了一些解決技巧,但大多是轉載的東西,很少對這個問題引發的原因有一個清晰、全面的解釋。因此,我覺得有必要對該問題引發的原因作一個詳細的剖析,希望對遇到同樣問題的朋友們能有所協助。首先,用一個簡單的例子來重現一下我所遇到的問題:(1)在VS2008的“Property Pages”屬性頁面中,選擇“Configuration
Time of Update: 2018-12-05
指令集變化1.地址寬度和運算元寬度首碼 64位元模式中,預設的地址寬度是64位,預設的運算元寬度是32位。地址寬度和運算元寬度首碼允許32位和64位元據和地址在指令序列中混用。下表(1-7)顯示了在IA-32e模式下需要指令首碼地址寬度。注意,在64位元模式下不支援16位地址。在敬愛內容和傳統模式下,地址寬度函數的功能和在IA-32傳動架構中一樣。下表(1-8)顯示了66H指令首碼和REX.W首碼的有效組合來指定IA-32e操作模式下的運算元寬度問題。 在64位元模式下,
Time of Update: 2018-12-05
1、定義波形資料格式typedef struct{WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize; }
Time of Update: 2018-12-05
1 案例描述作為Windows程式員,平時最擔心見到的事情可能就是程式發生了崩潰(異常),這時Windows會提示該程式執行了非法操作,即將關閉。請與您的供應商聯絡。呵呵,這句微軟的“名言”,恐怕是程式員最怕見也最常見的東西了。在一個大型軟體的測試過程中,初期出現程式崩潰似乎成了不可避免的事。其實測試中出現程式崩潰並不可怕,反而是測試的成功。作為開發的我們更需要關心的是程式中的哪個函數或哪一行導致了系統崩潰,這樣才能有針對性的進行改正。本文描述了自己總結的幾種定位崩潰的辦法。2
Time of Update: 2018-12-05
在使用com的過程中,發現無論是vs2005還是boundscheck都找不到記憶體泄露,但是程式一跑起來, 很快就上幾十M的記憶體泄露. 找啊找啊找, 找了半天, 還是沒發現. 求助同事, 他採用了windbg, 不過好像也不是那麼簡單, 很多時候甚至於需要一個函數一個函數通過console方式來進行測試. 總結一下, 在使用com編程的時候需要注意的地方:1,確保CoInitialize() 與 UncoInitalize() 的配對使用,
Time of Update: 2018-12-05
字串有好幾種不同的類型,新手一開始學的一定是char,這種是最基礎的字串,用ASCII碼來表示英文,這個叫做ANSI編碼。現在新寫程式都應當使用寬字元,類型是wchar_t,一個wchar_t佔兩個位元組,不管英文還是中文,這種編碼是一種Unicode編碼,Unicode編碼的程式即使拿到其他語言的系統上運行也能正確顯示,前提是那個系統安裝了中文字型。還有一種是MBCS,翻譯成中文就是多位元組字串,一個字元有多個位元組組成,不一定是2位元組也可以多餘兩位元組,GB2312,UTF8等都屬此類。編
Time of Update: 2018-12-05
下面我們簡單地給出PageHeap使用步驟: 第一步: 在命令列中運行PageHeap.Exe。如果你以前設定過啟用Global Page Heap標誌,那麼你將看到一個列表,給出所有已經啟用了的應用程式的名字,不含路徑。 如下所示: C:\>pageheap pgh.exe enabled testSplit.exe enabled 第二步: 編譯一個小程式,其中有如下代碼: void main() { int m_len = 5; char *m_p = (
Time of Update: 2018-12-05
如果在您的開發過程中遇到了常見的錯誤,或許您的Release版本不能正常運行而Debug版本運行無誤,那麼我推薦您閱讀本文:因為並非如您想象的那樣,Release版本可以保證您的應用程式可以象Debug版本一樣運行。如果您在開發階段完成之後或者在開發進行一段時間之內從來沒有進行過Release版本測試,然而當您測試的時候卻發現問題,那麼請看我們的調試規則1:規則1:
Time of Update: 2018-12-05
WinDbug調試Debug和Release編譯下的程式,要進行相關屬性設定,否則預設Release下的程式是不能定位到 WinDbgTest!TTSS::XXXXX裡面去的VS2008的Release中要增加如下的設定:C/C++->最佳化->最佳化:禁用(/0d)C/C++->最佳化->全程式最佳化:否C/C++->常規->調試資訊格式:用於"編輯並繼續"的程式資料庫