1. 程式人生 > >Visual Studio 2010專案中引用Lib靜態庫

Visual Studio 2010專案中引用Lib靜態庫

Openssl是個為網路通訊提供安全及資料完整性的一種安全協議,囊括了主要的密碼演算法、常用的金鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程式供測試或其它目的使用。首先下載Openssl包:(http://www.openssl.org/),這是一個C語言類庫包,在Windows下可以通過Perl對該類庫包進行MakeBuild,產生libeay32、ssleay32的Lib以及Dll檔案,具體操作詳見:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972,通過編譯產生這樣一系列檔案:

image

inc32裡面放置C語言標頭檔案。

1. 現在我要在Visual Studio 2010工程專案中使用到它,首先我要建立一個VC++.NET的專案,我這裡建立了一個MFC應用程式:

image

在專案名稱中點選“右鍵”,選擇“屬性”,從裡面找到“VC++目錄”:

image

找到兩個目錄選項:

image

其中包含目錄指向你的Openssl的標頭檔案的目錄,庫目錄指向你的Lib、Dll所在的目錄。

image

image

從這裡新建目錄來指向引導的目錄:

然後切換到“連結器”-> “輸入”:

image

在“附加依賴項”中,加入兩個Lib檔案:

image

這樣就完成了靜態庫的引用。

2. 現在看下專案中怎麼引用它(以SHA256演算法為例):

  1. #include 
    <openssl/sha.h>

方法展示

  1. // SHA256演算法字串加密 
  2. void sha256(charstringchar outputBuffer[64])   
  3. {   
  4.  unsigned char hash[SHA256_DIGEST_LENGTH];   
  5.  SHA256_CTX sha256;   
  6.  SHA256_Init(&sha256);   
  7.  SHA256_Update(&sha256, string, strlen(string));   
  8.  SHA256_Final(hash, &sha256);   
  9. int i = 0;   
  10. for
    (i = 0; i < SHA256_DIGEST_LENGTH; i++)   
  11.  {   
  12.  sprintf(outputBuffer + (i * 2), "%02x", hash[i]);   
  13.  }   
  14.  }   

呼叫:

  1. static unsigned char buffer[64];   
  2.  sha256(signature, (char*)buffer);  

由於Openssl包需要利用Perl進行編譯形成Lib以及Dll檔案,這裡我附上已經制作好的檔案,方便大家使用!