2012-02-22 48 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位)。

相关问题