- Aug 14 Fri 2015 13:24
免費軟體 | Android 模擬器 | Andy | 快速 | 流暢
- Aug 14 Fri 2015 13:01
免費軟體 | Android 模擬器 | Genymotion
- Aug 13 Thu 2015 18:51
程式開發 | 數學和編程
好些人來信問我,要成為一個好的程序員,數學基礎要達到什麼樣的程度?十八年前,當我成為大學計算機系新生的時候,也為同樣的問題所困擾。面對學數學,物理等學科的同學,我感到自卑。經常有人說那些專業的知識更加精華一些,難度更高一些,那些專業的人畢業之後如果做編程工作,水平其實比計算機系畢業的還要高。直到幾年前深入研究程序語言之後,對這個問題我才得到了答案和解脫。由於好多編程新手遇到同樣的困擾,所以我想在這裡把這個問題詳細的闡述一下。
數學並不是計算機科學的基礎
很多人都錯誤的認為,計算機科學是數學的一個分支,數學是計算機科學的基礎,數學是更加博大精深的科學。這些人以為只要學會了數學,編程的事情全都不在話下,然而事實卻並非如此。
- Aug 13 Thu 2015 18:43
程式開發 | 在VC/MFC下使用AfxMessageBox和MessageBox區別
- Aug 13 Thu 2015 18:26
程式開發 | 終極dos批處理循環命令詳解
終極dos批處理循環命令詳解
格式:FOR [參數] %%變量名 IN (相關文件或命令) DO 執行的命令
作用:對一個或一組文件,字符串或命令結果中的每一個對象執行特定命令,達到我們想要的結果。
注意:在批處理文件中使用 FOR 命令時,指定變量請使用 %%variable,而不要用 %variable。變量名稱是區分大小寫的,所以 %i 不同於 %I.
關於:for命令可以帶參數或不帶參數,帶參數時支持以下參數:/d /l /r /f
下面分別解釋一下
===
零:無參數時:
---
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。
TTT示例:
for %%i in (t*.*) do echo %%i --顯示當前目錄下與t*.*相匹配的文件(只顯示文件名,不顯示路徑)
for %%i in (d:\mydocuments\*.doc) do @echo %%i --顯示d:\mydocuments\目錄下與*.doc相匹配的文件
===
一、參數 /d (參數只能顯示當前目錄下的目錄名字)
---
格式:FOR /D %variable IN (set) DO command [command-parameters]
這個參數主要用於目錄搜索,不會搜索文件,/D 參數只能顯示當前目錄下的目錄名字。(TTT特別說明:只會搜索指定目錄下的目錄,不會搜索再下一級的目錄。)
TTT示例:
for /d %%i in (c:\*) do echo %%i --顯示c盤根目錄下的所有目錄
for /d %%i in (???) do echo %%i --顯示當前目錄下名字只有1-3個字母的目錄
===
二、參數 /R (搜索指定路徑及所有子目錄中與set相符合的所有文件)
---
格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
此命令會搜索指定路徑及所有子目錄中與set相符合的所有文件,注意是指定路徑及所有子目錄。
- Aug 13 Thu 2015 18:21
程式開發 | Visual Studio自動移除工具
Visual Studio 2005自動移除工具
Uninstalling Previous Versions of Visual Studio 2005網頁提供Run autouninstall tool now的移除工具。
Visual Studio 2008自動移除工具
解除安裝 Visual Studio 2008網頁提供立刻執行 AutoUninstallTool的移除工具。
- Aug 13 Thu 2015 18:04
程式開發 | Visual Studio 2010 完整移除方法 VS2010 Full Uninstall
Visual Studio 2010 完整移除方法 VS2010 Full Uninstall
- Aug 13 Thu 2015 17:35
程式開發 | 辨識作業系統是否為64位元的方法--使用C#
前一陣子,幫公司寫了一個自動化安裝系統的程式,
有一堆必要Component,x86、x64的安裝檔案不同,例如:Windows Installer 4.5。
於是,為了讓所有系統都可以達到自動辨識、安裝的目的,寫了以下一段程式,用來辨識OS是否為64位元。
先解說一下基本的原理:
辨識的原理,其實很簡單,基本的原理是透過檢查作業系統的『CPU定址長度』來判定。
32位元的作業系統,CPU定址長度會是32bit,即使使用的實體CPU是64位元的,OS仍會判定是32bit。
64位元,就沒有這種問題啦,不是64位元的CPU,應該也裝不了64位元的OS。
以下是判斷的程式碼:
- private bool DetectIf64bit()
- {
- bool Is64Bit;
- ObjectQuery objQry;
- System.Management.ManagementScope mngScope;
- System.Management.ConnectionOptions connOpt = new ConnectionOptions();
- System.Management.ManagementObjectSearcher searcher;
- //-----設定 WMI 連接資訊-----
- connOpt.Username = ""; // 登入系統的帳號
- connOpt.Password = ""; // 密碼
- connOpt.Authentication = AuthenticationLevel.Default; // 連線驗證方式
- mngScope = new ManagementScope();
- mngScope.Path = new ManagementPath(@"\\.\root\cimv2");
- mngScope.Connect();
- //----- 透過WMI擷取CPU定址長度資訊
- objQry = new ObjectQuery("SELECT * FROM Win32_Processor");
- searcher = new ManagementObjectSearcher(mngScope, objQry);
- Is64Bit = false;
- foreach (ManagementObject QryObj in searcher.Get())
- {
- if (QryObj.GetPropertyValue("AddressWidth").ToString().Trim() == "64")
- {
- Is64Bit = true;
- break;
- }
- }
- return (Is64Bit);
- }
這個辨識方法,已於Windows XP/Vista/2003/2008/7 實際測試
- Aug 13 Thu 2015 17:34
程式開發 | VGA Vesa DDC顯示接口
VGA 是 Video Graphics Adapter(Array) 的縮寫,VESA 是 Video Electronics Standards Association 的縮寫,DDC 是 Display Data Channel 的縮寫,信號類型為模擬類型,顯示卡端的接口為 15 針母插座:
顯示器連線端的接口為 15 針公插頭:
- Aug 13 Thu 2015 17:32
程式開發 | kernel32/comm.c
/*
* DEC 93 Erik Bos <erik@xs4all.nl>
*
* Copyright 1996 Marcus Meissner
*
- Aug 13 Thu 2015 17:27
程式開發 | Windows NT啟動過程詳解
Windows NT啟動過程詳解
我們每天都在和Windows打交道,很多人可能每天都要面對多次Windows的啟動過程,可是您知道在Windows的啟動過程背後,隱藏著什麼秘密嗎?在這一系列過程中都用到了哪些重要的系統檔案?系統的啟動分為幾個步驟?在這些步驟中電腦中發生了什麼事情?這些就是本文試圖告訴您的。
隨著技術的發展,我們能夠見到的電腦硬體種類越來越多。以電腦上最重要的組件CPU來說,目前就有很多選擇。當然,這裡的選擇並不是說AMD或者Intel這種產品品牌,而是指其內部的系統架構。目前常見的CPU系統架構主要是基於複雜指令集(Complex Instruction Set Computing,CISC)或者精簡指令集(Reduced Instruction Set Computing,RISC),我們常用的Intel的Pentium、Celeron系列以及AMD的Athlon、Sempron系列都是基於複雜指令集的,而這些基於復雜指令集的CPU還有32位元和64位元的暫存器資料寬度區別。關於這些指令集以及暫存器資料寬度之間的區別等內容比較繁雜,而且不是本文的重點,感興趣的朋友可以自己在網上搜索相關內容。
因為CPU種類的不同,在不同CPU的系統中執行的Windows的啟動過程也有一些小的不同。本文將會以目前來說最普遍的,在x86架構的系統上安裝的32位Windows XP Professional為例做介紹。
- Aug 13 Thu 2015 17:27
程式開發 | 如何調整自己編寫的服務的啟動順序
我們使用VC編寫了一個Windows服務程序後,有時候需要調整其啟動順序,比如希望在其它一些程序之前啟動自己的服務程序,則我們首先必須瞭解Windows服務的啟動機制是什麼?
Windows服務的啟動是按組來啟動的,這些組的啟動順序在註冊表中如下位置定義:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder下的一個名List的REG_MULTI_SZ鍵值中可以看到。
而我們在編寫Windows服務程序時其實是可以對啟動順序進行設置的,我們先來看看CeateService函數原型:
SC_HANDLE CreateService(
- Aug 13 Thu 2015 17:19
程式開發 | MFC UNICODE項目CFILE寫html文件亂碼解決
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
不同編碼的文本,是根據文本的前兩個字節來定義其編碼格式的。定義如下:
- Aug 13 Thu 2015 17:13
程式開發 | #pragma pack(1)表示的意義