目前分類:[程式開發] (25)

瀏覽方式: 標題列表 簡短摘要

/*
 * DEC 93 Erik Bos <erik@xs4all.nl>
 *
 * Copyright 1996 Marcus Meissner
 *

文章標籤

NoSleep 發表在 痞客邦 留言(0) 人氣()

Windows NT啟動過程詳解

我們每天都在和Windows打交道,很多人可能每天都要面對多次Windows的啟動過程,可是您知道在Windows的啟動過程背後,隱藏著什麼秘密嗎?在這一系列過程中都用到了哪些重要的系統檔案?系統的啟動分為幾個步驟?在這些步驟中電腦中發生了什麼事情?這些就是本文試圖告訴您的。

 

隨著技術的發展,我們能夠見到的電腦硬體種類越來越多。以電腦上最重要的組件CPU來說,目前就有很多選擇。當然,這裡的選擇並不是說AMD或者Intel這種產品品牌,而是指其內部的系統架構。目前常見的CPU系統架構主要是基於複雜指令集(Complex Instruction Set ComputingCISC)或者精簡指令集(Reduced Instruction Set ComputingRISC),我們常用的IntelPentiumCeleron系列以及AMDAthlonSempron系列都是基於複雜指令集的,而這些基於復雜指令集的CPU還有32位元和64位元的暫存器資料寬度區別。關於這些指令集以及暫存器資料寬度之間的區別等內容比較繁雜,而且不是本文的重點,感興趣的朋友可以自己在網上搜索相關內容。

 

因為CPU種類的不同,在不同CPU的系統中執行的Windows的啟動過程也有一些小的不同。本文將會以目前來說最普遍的,在x86架構的系統上安裝的32Windows XP Professional為例做介紹。

文章標籤

NoSleep 發表在 痞客邦 留言(0) 人氣()

  我們使用VC編寫了一個Windows服務程序後,有時候需要調整其啟動順序,比如希望在其它一些程序之前啟動自己的服務程序,則我們首先必須瞭解Windows服務的啟動機制是什麼?

        Windows服務的啟動是按組來啟動的,這些組的啟動順序在註冊表中如下位置定義:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder下的一個名List的REG_MULTI_SZ鍵值中可以看到。

        而我們在編寫Windows服務程序時其實是可以對啟動順序進行設置的,我們先來看看CeateService函數原型:

SC_HANDLE CreateService(

文章標籤

NoSleep 發表在 痞客邦 留言(0) 人氣()

  

MFC UNICODE項目CFILE寫html文件亂碼解決


 CFile file; CString filename = D:\\; filename+=L"index.html"; file.Open(filename,CFile::modeCreate|CFile::modeWrite); file.SeekToBegin(); WORD unicode = 0xFEFF; //UNICODE編碼文件頭 file.Write(&unicode,2); file.Write(CString內容,CString內容.GetLength()*2); file.Flush(); file.Close();

 

 

文本支持四種格式:ANSI/Unicode/Unicode big endian/UFT-8

不同編碼的文本,是根據文本的前兩個字節來定義其編碼格式的。定義如下:

文章標籤

NoSleep 發表在 痞客邦 留言(0) 人氣()

程式中#pragma pack(1)的用途,但不知道它所代表的意義呢?以下將進行解說
#pragma pack(1)
作用:調整結構體的邊界對齊,讓其以1個位元組對齊。
範例一 

01 typedef struct _sampleA{
02 char a;
03 double b;
04 };
文章標籤

NoSleep 發表在 痞客邦 留言(0) 人氣()

«12