[轉]在VS2010 VC++項目中引用Lib靜態庫(以Openssl為例)

來源:互聯網
上載者:User

標籤:

本文轉自:http://kb.cnblogs.com/page/94467/

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,通過編譯產生這樣一系列檔案:

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

  1. 現在我要在VS2010的工程項目中使用到它,首先我要建立一個VC++.NET的項目,我這裡建立了一個MFC應用程式:

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

  找到兩個目錄選項:

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

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

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

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

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

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

  #include <openssl/sha.h>

  方法展示:

?
1234567891011121314 // SHA256演算法字串加密void sha256(char* string, char outputBuffer[64]){    unsigned char hash[SHA256_DIGEST_LENGTH];    SHA256_CTX sha256;    SHA256_Init(&sha256);    SHA256_Update(&sha256, string, strlen(string));    SHA256_Final(hash, &sha256);    int i = 0;    for(i = 0; i < SHA256_DIGEST_LENGTH; i++)    {        sprintf(outputBuffer + (i * 2), "%02x", hash[i]);    }}

  調用:

?
12 static unsigned char buffer[64];sha256(signature, (char*)buffer);

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

  Openssl最新版openssl-1.0.0d的Windows執行包下載:openssl_out32dll.rar

[轉]在VS2010 VC++項目中引用Lib靜態庫(以Openssl為例)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.