VS2019,如何使用Crypto++

Posted CP3CP4

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2019,如何使用Crypto++相关的知识,希望对你有一定的参考价值。

一、生成lib库

找到crypto项目中的.sln文件,使用vs打开,选到目标平台和模式,分别生成!

 二、生成后,将cryptlib.lib另存至vs的lib库下,其中包括release和debug

 三、将源代码中的头文件全部拷贝至vs的include文件路径中

 四、配置VS

debug-》常规下

 代码生成:debug选MTd   release下可以选择MT

 连接器-》附加库目录 

debug下选择debug的lib,release选择release的lib  一定要一一对应!

错误解决

1、无法打开"cryptopp.h"

解决方法:按照上述步骤一一执行即可

2、检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

解决方法:将对应的lib库在项目文件中添加,需要release对应release模式下生成的,debug也一样!

如何将 Crypto++ 包含到 VS 项目中

【中文标题】如何将 Crypto++ 包含到 VS 项目中【英文标题】:How to include Crypto++ into a VS Project 【发布时间】:2019-01-28 19:09:50 【问题描述】:

我正在开发一个使用 CryptoPP 的项目,但是当我尝试编译我的代码时,我总是遇到链接问题。现在我想在这里问如果有人知道如何正确链接它。

我已经试过了:

下载 Crypto++ 打开 SLN

构建 cryptlib

将 cryptlib.lib 移至我的项目文件夹

将 Crypto++ 标头包含到我的项目中 将 cryptlib.lib 添加到头文件中。

我希望我的项目能够完全编译和链接,没有错误,并且能够运行一些仅用于测试的 AES。

【问题讨论】:

“将 libcrypto.lib 添加到头文件中。” 什么意思? .lib 文件应该添加到项目库文件中,而不是标题中。也许this 有帮助。 强烈建议打开“输出”选项卡(如果您没有移动任何东西,则在 IDE 底部)并将项目完全重建的输出与 @ 一起复制到问题中987654322@。这为我们在互联网领域提供了一些关于您实际遇到的问题的提示。 我在冒险猜测...可能是dynamic C/C++ runtime linking。您应该显示一个典型的编译命令和链接命令,并显示您遇到的一些错误。此外,该库称为cryptlib.lib。没有libcrypto.lib。如果你确实链接了libcrypto.lib,那么它是错误的库。 Windows 内置了出色的CryptoAPI。你真的不需要任何 3rd-party 库... 【参考方案1】:

最好的方法是在您的项目文件夹(.SLN 所在的位置)中创建一个名为 cryptopp 的文件夹,从目录中的cryptopp 克隆或下载源代码。

[Visual Studio->Solution Explorer] 点击[Solution->Add->Existing Project] 并选择cryptlib.vcproj 文件以包含在您的解决方案中。

你可以在这里找到一个使用cryptopp的项目示例https://github.com/mrc-g/BitMRC

【讨论】:

是的,你是对的,我已经编辑过了,最好静态链接。 OP 也可能需要执行dynamic C++ runtime 转换。这取决于项目的设置方式,但大多数人采用 Visual Studio 默认设置。

以上是关于VS2019,如何使用Crypto++的主要内容,如果未能解决你的问题,请参考以下文章

CBC和CTR模式下的AES

CBC和CTR模式下的AES

如何在 Crypto++ 中使用 RSA OAEP SHA-256 加密/解密数据

如何从 Crypto++ ECDSA 中的签名体中获取签名长度

在vs2019中double如何使用?

使用vs2019如何只编译一个c++文件