2012-02-22 64 views
4

我是一名C++開發人員,但在Windows開發中沒有很強的背景知識。開發64位應用程序,使用MS CryptoAPI

我的主要問題圍繞使用Crypto API。我將使用像CryptAcquireContext這樣的函數。 在研究有關此API的更多信息時,僅作爲「Win32 Crypto API」進行了描述。我想知道是否有「Win64 Crypto API」?

如果沒有,如果我開發的應用程序在Visual Studio中使用「Win32 Crypto API」並編譯爲64位模式。如果我用32位編譯的話會更好一些?

我該如何開發一個使用Crypto API的64位應用程序?

如果可能的話,你報告了開發應用程序的任何問題,爲64位,而使用加密API,檢索證書,攜帶簽名,等等。

文章是非常受歡迎的。

+1

平臺SDK中肯定有crypt32.lib和advapi32.lib的64位導入庫。 – Rup 2012-02-22 17:55:39

回答

5

加密API的64位工作正常,只是用%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64爲您的圖書館,而不是%ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib,它會正常工作,應該有32位和未使用正確處理的64位庫之間沒有差異調用的數據類型(特別是指針寬度)

2

Crypto API駐留在ADVAPI DLL中。但是,您鏈接到不推薦使用的CAPICOM,不應使用,且僅爲32位。

CryptAcquireContext()是存在於64位和32位Windows中的ADVAPI。

3

術語「Win32」是爲了區別它與.Net加密API而不是64位API。您的研究資源可能並未更新爲使用「Win64」或「native」等新術語。但是,它看起來並不像MSDN那樣犯了這個錯誤。

在64位應用程序中使用它應該沒有問題(除了CAPICOM,它只是32位)。

相關問題