开发使用MS CryptoAPI的64位应用程序 我是C++开发人员,但在Windows开发方面没有很强的背景。

开发使用MS CryptoAPI的64位应用程序 我是C++开发人员,但在Windows开发方面没有很强的背景。,c++,windows,cryptography,cryptoapi,mscapi,C++,Windows,Cryptography,Cryptoapi,Mscapi,我的主要问题围绕着使用。我将使用如下函数。 在研究更多关于这个API的信息时,我想知道是否有“Win32 Crypto API” 如果不是,如果我开发一个应用程序,在VisualStudio中使用“Win32 Crypto API”,并以64位模式编译。如果我用32位编译会更好吗 要开发一个使用加密API的64位应用程序,我必须做些什么 如果可能,报告您在使用crypto API开发64位应用程序、检索证书、携带签名等时遇到的任何问题 非常欢迎发表文章。加密api在64位中运行良好,只需使用%P

我的主要问题围绕着使用。我将使用如下函数。 在研究更多关于这个API的信息时,我想知道是否有“Win32 Crypto API”

如果不是,如果我开发一个应用程序,在VisualStudio中使用“Win32 Crypto API”,并以64位模式编译。如果我用32位编译会更好吗

要开发一个使用加密API的64位应用程序,我必须做些什么

如果可能,报告您在使用crypto API开发64位应用程序、检索证书、携带签名等时遇到的任何问题


非常欢迎发表文章。

加密api在64位中运行良好,只需使用
%ProgramFiles%\Microsoft SDK\Windows\vX.X\Lib\x64
作为库,而不是
%ProgramFiles%\Microsoft SDK\Windows\vX.X\Lib
,它就可以正常工作,32位库和64位库之间不应存在任何差异,这些差异不是通过为调用使用正确的数据类型(特别是指针宽度)来处理的。

加密API驻留在ADVAPI DLL中。但您不应使用已弃用的CAPICOM链接,该链接仅为32位

CryptAcquireContext()是同时存在于64位和32位窗口中的ADVAPI。

术语“Win32”是为了将其与.Net加密API(而不是64位API)区分开来。您的研究资源可能只是没有更新为使用“Win64”或“native”等较新的术语。不过,MSDN看起来并没有犯这样的错误


在64位应用程序中使用它应该没有问题(CAPICOM除外,它实际上是32位的)。

在平台SDK中,crypt32.lib和advapi32.lib肯定有64位导入库。