- Gof 模式
- Structural 模式
- Behavioral 模式
- 多執行緒模式
- Guarded Suspension 模式
- Producer Consumer 模式
- Worker Thread 模式
- Thread-Per-Message 模式
- Future 模式
- Read-Write-Lock 模式
- Two-phase Termination 模式
- Thread-Specific Storage 模式
- 參考資料
雜七雜八的記憶
介紹 Visual Studio 整合式開發環境 (IDE),並示範適用於 Visual C++ 開發人員的有用功能。
示範如何使用 Visual Studio IDE 編譯 Visual C++ 程式。
示範如何編譯 Visual Studio 隨附的說明主題中的程式碼範例。
示範如何從命令列編譯 Visual C++ 程式。
提供安裝 Microsoft Platform SDK 以搭配使用 Visual C++ Express Edition 的指示。
向 Microsoft 環境的新手開發人員介紹 Visual Studio 和 Visual C++。
示範如何將現有的程式碼匯入至 Visual Studio。
解說如何使用 Visual Studio 建立 Windows Form 應用程式。
解說如何使用 Visual Studio 建立 Windows Form 控制項,以及如何在應用程式中使用該控制項。
介紹用來編寫 XML Web Service 的 ASP.NET Web 服務範本。
討論針對 Managed 裝置和針對桌上型電腦進行開發的一些差異性。
提供 SQL Server 類別庫範本的概觀。
介紹主控台應用程式範本,它可用來建立會從命令列執行的應用程式。
示範如何建立 Managed 組件,以及如何從另一個應用程式來使用該組件。
解說如何使用 Visual Studio 建立及編譯標準的 C++ 程式。
解說如何使用 MFC 應用程式精靈建立 MFC 應用程式。
解說如何使用 MFC ActiveX 控制項精靈建立 MFC ActiveX 控制項。
解說如何使用 Win32 應用程式精靈建立標準的 C++ 程式。
解說如何使用 MFC DLL 精靈建立 MFC 動態連結程式庫。
解說如何使用 ATL 專案精靈建立 Active Template Library 應用程式。
解說如何使用 ATL Server 專案精靈建立原生 XML Web Service 應用程式。
解說如何使用 Windows 服務範本建立 Windows 服務,Windows 服務是一種會在它自己的 Windows 工作階段中長時間執行的可執行應用程式。
包含有關建立新 Visual C++ 裝置專案的主題,以及有關可讓現有專案在 Visual Studio 2005 環境中鎖定裝置的主題。
示範如何建立動態連結程式庫,以及如何從另一個應用程式來使用該 DLL。
介紹用來鎖定 Common Language Runtime (CLR) 為目標的 C++ 新語法。
示範如何從檔案讀取二進位資料。
示範如何將二進位資料寫入檔案中。
示範如何開啟文字檔,並一次讀取一行。
示範如何使用 StreamWriter 類別建立文字檔,並將文字寫入到這個檔案中。
示範如何擷取目錄中的檔案之清單。
使用 FileSystemWatcher 來註冊建立、變更、刪除或重新命名檔案的對應事件。
示範 FileInfo 類別。當您知道檔案名稱時,您可以使用這個類別擷取檔案的資訊,例如檔案大小、目錄、完整名稱以及建立和上次修改的日期和時間。
使用 CurrentUser 機碼來建立 RegistryKey 類別的可寫入執行個體。
使用 CurrentUser 機碼來從 Windows 登錄讀取資料。
使用 GetDataObject 成員函式來傳回 IDataObject 介面的指標,然後即可對此介面查詢資料的格式,並用來擷取實際的資料。
使用 System.Windows.Forms 命名空間中所定義的 Clipboard 物件來儲存字串。
示範如何擷取目前作業系統的平台和版本的資訊。
示範如何判斷 Windows 啟動之後所經歷的時間滴答計數或是毫秒數。
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace DataCrypto
{
///
/// 對稱加密演算法
///
public class SymmetricMethod
{
private SymmetricAlgorithm mobjCryptoService;
private string Key;
///
/// 對稱加密的構造函數
///
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
///
/// 獲得密鑰
///
/// 密鑰
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(KeyLength," stemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk" byttemp =" mobjCryptoService.IV;" ivlength =" bytTemp.Length;"> IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(IVLength,">
/// 加密
///
///
待加密的串
/// 經過加密的串
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
///
/// 解密方法
///
/// 待解密的串
/// 經過解密的串
public string Decrypto(string Source)
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
}
}
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>