Entwicklung von 64-Bit-Anwendungen, die MS CryptoAPI verwenden
-
29-10-2019 - |
Frage
Ich bin ein C ++ - Entwickler, habe aber keinen starken Hintergrund in der Windows-Entwicklung.
Meine Hauptfrage dreht sich um die Verwendung von Crypto API . Ich werde Funktionen wie CryptAcquireContext
Was muss ich tun, um eine 64-Bit-Anwendung zu entwickeln, die die Crypto-API verwendet?
Lösung
Die Crypto-API funktioniert einwandfrei in 64-Bit. Verwenden Sie einfach %ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib\x64
als Bibliothek anstelle von %ProgramFiles%\Microsoft SDKs\Windows\vX.X\Lib
. Es funktioniert einwandfrei. Es sollte keine Unterschiede zwischen der 32-Bit- und der 64-Bit-Bibliothek geben, die nicht mit den richtigen Daten verarbeitet werdenTypen für die Aufrufe (insbesondere Zeigerbreite)
Andere Tipps
Der Begriff "Win32" unterscheidet es von einer .NET-Kryptografie-API, nicht von einer 64-Bit-API.Ihre Forschungsressourcen wurden wahrscheinlich nicht aktualisiert, um neuere Begriffe wie "Win64" oder "native" zu verwenden.Es sieht jedoch nicht so aus, als ob MSDN diesen Fehler macht.
Es sollte keine Probleme bei der Verwendung mit einer 64-Bit-Anwendung geben (außer CAPICOM, das eigentlich nur 32-Bit ist).
Die Krypto-API befindet sich in der ADVAPI-DLL.Sie stellen jedoch einen Link zu CAPICOM her, der veraltet ist, nicht verwendet werden sollte und nur 32 Bit enthält.
CryptAcquireContext () ist ADVAPI, das sowohl in 64-Bit- als auch in 32-Bit-Windows vorhanden ist.