Time of Update: 2018-12-07
#include <inifiles.hpp> __fastcall TForm1::TForm1(TComponent *Owner) : TForm(Owner){ TIniFile *ini; ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) ); Top = ini->ReadInteger( "Form", "Top", 100 ); Left =
Time of Update: 2018-12-07
void __fastcall TForm1::Button1Click(TObject *Sender){ Graphics::TBitmap *bmp=new Graphics::TBitmap(); bmp->Width=Image1->Width; bmp->Height=Image1->Height;
Time of Update: 2018-12-07
對一台安裝了Windows NT 系列作業系統的PC來說,按下電源開關之後,CPU中首先開始啟動並執行是Bios,然後是MBR,接著是引導扇,然後就是NTLDR。ntoskrnl.exe和hal.dll 都是由NTLDR來載入的。也就是說,運行NTLDR的時候,系統中還沒有任何應用程式或者驅動,當然也就沒有任何基於軟體的調試器可用。當然,無所不能的硬體調試器肯定是可以的,可惜我們沒有硬體調試器。 幸好有了Bochs。Bochs是一個基於LGPL的開源x86
Time of Update: 2018-12-07
前些天有人在論壇裡問在動態建立TreeCtrl後怎麼響應訊息,於是便寫了一點自己的心得,現整理如下。 本例在view中動態建立一個ListCtrl並響應其NM_CLICK訊息,先寫出動態建立的代碼: 建立一SDI工程,給view加上一個成員變數:CListCtrl m_list; 在view的OnCreate中建立它:if(!m_list.Create(WS_BORDER
Time of Update: 2018-12-07
寫程式這麼多,第一次手寫鏈表 #include "stdio.h"#include "string.h"#include "assert.h"#include "stdlib.h"#include "windows.h"typedef struct PATCH_NODE{ ULONG OldFuncAddr; ULONG FakeFuncAddr; ULONG PatchCodeLen; PATCH_NODE* pNextNode;} PATCH_NODE,
Time of Update: 2018-12-07
對於Ring3的應用程式,fs:[0]的地址指向的是TEB結構,這個結構的開頭是一個NT_TIB結構,NT_TIB結構的0x18位移處是一個Self指標,指向這個結構自身,也就是指向TEB結構的開頭。TEB結構的0x30位移是一個指向PEB的指標。PEB又是一個結構,這個結構的0x2位移處是一個UChar,名叫BeingDebugged,當進程被調試時,此值為1,未被調試時此值為0因此以下代碼逐行執行後的結果:mov eax,dword ptr fs:[18h];eax=TEB的指標mov e
Time of Update: 2018-12-07
需要一個有超連結功能的CStatic,本來想自己實現,在網上找了下,找到了這個HyperLink,用法很簡單 // CDhfuelApp message handlersBOOL CAboutDlg::OnInitDialog() { CDialog::OnInitDialog(); CString url("http://www.163.cn"); m_Link.SubclassDlgItem(IDC_STATICURL,this); //
Time of Update: 2018-12-07
最近在研究linux0.11的核心代碼,主要是參考趙炯博士的《Linux核心完全注釋》一書,以及www.oldlinux.org網站。發現了一些好的資料,想放到自己的部落格上面,免得以後想要用的時候找不到了——————————————————————————————————————————————————————————————————————14.1
Time of Update: 2018-12-07
NTSTATUSGetSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, OUT PUNICODE_STRING LinkTarget)/*++Routine Description: This routine returns the target of the symbolic link name. Arguments: SymbolicLinkName - Supplies the symbolic link
Time of Update: 2018-12-07
//顯示檔案儲存對話方塊 CFileDialog dlg(FALSE, "CSV", "Record",OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT,"CSV Files(*.CSV)|*.csv"); if ( dlg.DoModal()!=IDOK ) return; //擷取檔案的絕對路徑 m_strFilePath = dlg.GetPathName(); //顯示檔案開啟對話方塊CFileDialog
Time of Update: 2018-12-07
相關討論:http://www.ednchina.com/blog/computer00/14382/category.aspx 在USB中,USB HOST是通過各種描述符來識別裝置的,有裝置描述符,配置描述符,介面描述符,端點描述符,字串描述符,報告描述符等等。USB報告描述符(Report Descriptor)是HID裝置中的一個描述符,它是比較複雜的一個描述符。 USB
Time of Update: 2018-12-07
文章目錄 4.1 Windows記憶體管理 本質上虛擬記憶體就是要讓一個程式的代碼和資料在沒有全部載入記憶體時即可運行。運行過程中,當執行到尚未載入記憶體的代碼,或者要訪問還沒有載入到記憶體的資料時,虛擬記憶體管理器動態地將這部分代碼或資料從硬碟載入到記憶體中。而且在通常情況下,虛擬記憶體管理器也會相應地先將記憶體中某些代碼或者資料置換到硬碟中,為即將載入的代碼或資料騰出空間。因為記憶體和硬碟之間的資料轉送相對代碼執行來說,是非常慢的操作,
Time of Update: 2018-12-07
修改中斷描述符表(IDT)中的鍵盤入口實現按健記錄,把讀取到的鍵盤掃描碼轉換成 ascii 碼記錄下來。尋找鍵盤入口採用了查詢 IO APIC的重新導向寄存器的方法(通過把物理地址 0xFEC00000 映射為虛擬位址,然後讀取鍵盤中斷向量,最難得是沒有 xpsp2的限制了。這是我從別處轉過來的驅動源碼, Windows XP Checked Build Environment測試過。#include <ntddk.h>#include
Time of Update: 2018-12-07
求職經曆——面試之技術面試篇本篇是面試部分中最核心的一篇:技術面試篇。適用於電腦相關職位。 對於這部分面試來說,沒有太多的技巧可言,主要還是看個人的技術水平,積累程度和項目研究相關性,相信對於那些技術很牛的同學,通過這部分面試應該沒問題。所以本篇的主要內容,是向那些技術儲備不夠的同學提供一些具體的面試題,希望將要參加技術面試的同學能夠對症下藥,提前作好準備。 一般來說,技術面試中的問題主要分為兩大類:通用問題和專業問題。下面分別來說。(一)通用問題 通用問題指的是,對於你簡曆中的個人經曆、
Time of Update: 2018-12-07
x86架構設計在上是基於中斷思想的,因而從DOS到Win32,作業系統中大量使用中斷的概念來表達非同步作業的行為。但與DOS下獨佔的情況不同,Win32下需要由系統對多任務進行調度,因此中斷響應代碼必須儘可能地簡單,並且儘快的將控制權交還給系統。雖然這樣一來系統調度的響應速度和實現過程方便了,但還是有很多功能需要在中斷響應中完成。為此,Win32核心提供了DPC(Deferred ProcedureCall)和APC(Asynchronous Procedure
Time of Update: 2018-12-07
在控制項編程中,其實字型的設定是非常方便的,主要搞清楚控制項是從Cwnd類繼承而來的,其實字型的管理等等工作也是由Cwnd類中的函數來管理的。所以在控制項中,修改控制項的字型可以寫成:CFont *font;font = new CFont;font->CreatePointFont(100,"華文行楷",NULL);SetFont(font); 如果是在控制項外面進行字型設定,那麼可以寫成: CListCtrl m_wndListCtrl;CFont *font;font = new
Time of Update: 2018-12-07
//========================================================================//TITLE:// WinXP與WinCE串口的運行機制之比較//AUTHOR:// norains//DATE:// Saturday 25-November-2006//Passed Environment:// PC:WinXP+VC6.0// CE:WinCE4.2+EVC4.0//=============
Time of Update: 2018-12-07
這個問題引起的一個BUG, 記下來, 在對話方塊顯示後,介面上的CDateTimeCtrl時間不再進行改變,如果需要修改,需自己進行 SYSTEMTIME st; GetSystemTime(&st); SystemTimeToTzSpecificLocalTime(NULL, &st, &st); //時間轉換 m_picker.SetTime(&st); CDataTimeCtrl::SetFormat("yyyy-M-d
Time of Update: 2018-12-07
如何用DS構造一個簡單的USB過濾驅動程式 作者: 無心化語 如何構造一個簡單的USB過濾驅動程式 本文分三部分來介紹如何構造一個簡單的USB過濾驅動程式,包括“基本原理”、“程式的實現”、“使用INF安裝”。此文的目的在於希望讀者瞭解基本原理後,可以使用除DDK以外最流行也最方便的驅動開發工具DriverStudio來實現一個自己的過濾驅動,並正確地安裝。 一、基本原理
Time of Update: 2018-12-07
windows中實際的中斷處理是通過IoConnectInterrupt註冊的。。。。NTSTATUSNTAPIIoConnectInterrupt(OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock,