2011-07-08 158 views

回答

17
自述(這可以在這裏找到 Crypto++ Svn Trunk

直接:

* MSVC的特定信息*

在Windows上,加密++可以編譯成3種形式:包括所有靜態庫 算法,僅具有FIPS批准算法的DLL,以及僅具有算法的靜態庫,不在DLL中。 (FIPS批准的方法根據FIPS 140-2標準批准。) DLL本身可以使用,或者它可以與靜態庫的第二個 形式一起使用。包含MSVC項目文件以構建所有三種形式的 ,並且還包括使用三種形式 中的每一種的示例應用程序。

編譯加密+與MSVC,打開 「cryptest.dsw」(對於MSVC 6和MSVC .NET 2003)或 「cryptest.sln」(2005年MSVC - 2010)的工作區文件並生成一個或多個 的以下項目:

  • cryptopp - 這將生成DLL。請注意,如果您希望使用Crypto ++ 作爲FIPS驗證模塊,則必須使用經過FIPS驗證過程而不是構建自己的預構建DLL。
  • dlltest - 這會構建一個僅使用DLL的示例應用程序。
  • cryptest非DLL導入配置 - 這將生成完整的靜態庫 以及完整的測試驅動程序。
  • cryptest DLL-導入配置 - 這將生成一個靜態庫,其中包含僅包含 的算法,而不包含DLL中的算法,以及使用DLL和靜態庫的完整測試驅動程序,其中包含 。

要包括 任何其他加密++頭文件之前使用加密+ DLL在您的應用程序的#include「dll.h」,並把DLL在同一目錄 您的.exe文件。 dll.h包含行#pragma註釋(lib,「cryptopp」) 因此您不必在項目 設置中明確列出導入庫。要使用Crypto ++的靜態庫形式,請將「cryptlib」 項目作爲應用程序項目的依賴項,或將其指定爲 另一個要在項目設置中鏈接的庫。 無論哪種情況,您都應該檢查編譯器選項 ,確保庫和您的應用程序使用相同的C++ 運行時庫和調用約定。

如果您有任何問題隨時問我會用我的反應

+0

您是否在尋找其他信息? – Nicholas

+0

我已經切換到靜態庫,但我的項目一直試圖鏈接cryptopp.lib ...它不在任何設置中...... – Dani

1

如果您將cryptest.sln從VS2005轉換爲VS2010,您將遇到問題。當你編譯源代碼,編譯器會顯示錯誤:

C1XX:致命錯誤C1027:創建和使用預編譯頭

之間的/ YM不一致的值,您可以通過以下方法解決此問題:

  1. 將項目屬性 - >配置屬性 - > C/C++ - >預編譯頭

  2. 更改爲 「不使用預編譯頭」

3

I downloaded http://www.cryptopp.com/#download 5.6.1 and have no clue what to do at this point...

這是一個非常晚的答案,但該項目已發佈了一些新的文件,以幫助人們使用Visual Studio 2010及以上。

該項目不得不發佈更新的文件,因爲VCUpgrade(隨Visual Studio 2010一起提供)在這個特定的項目中做得相當差。幾年來它一直是問題的來源,甚至有視力障礙的用戶也在評論它。這些問題在VS2012,VS2013和VS2015中都沒有解決,所以我們不認爲微軟有任何解決問題的意圖。

要使用更新的文件,請下載最新的Crypto ++版本from the website。然後,訪問Crypto ++ wiki並從Visual Studio頁獲取vs2010.zip。通過Crypto ++文件解壓縮vs2010.zip。最後雙擊名爲cryptest.sln的文件以使Visual Studio打開解決方案文件。

Crypto++ wiki頁面還提供項目文件,爲VS2005和VS2010提供動態運行時鏈接。

相關問題