1

出于某种原因,我想出了使用 botan 连接到 PKCS11 硬件令牌。我是 C++ 新手,想用 Visual Studio 2019 编写代码。

我下载了botan源代码并用nmake构建了源代码。构建完成后,创建一个名为 build 的文件夹。

我将botan的目录添加到VC++目录[右键单击应用程序-->属性-->VC++目录]

    #include <iostream>
    #include <botan\botan.h>
    #include <botan\alg_id.h>
    #include <external\pkcs11t.h>
    #include <external\pkcs11f.h>
    #include <external\pkcs11.h>


   int main() {

    Botan::Dynamically_Loaded_Library pkcs11_module("C:\\pkcs11-middleware\\library.dll");
    Botan::PKCS11::FunctionListPtr func_list = nullptr;
    Botan::PKCS11::LowLevel::C_GetFunctionList(pkcs11_module, &func_list);
    Botan::PKCS11::LowLevel p11_low_level(func_list);


   }

这些行有错误

  • 命名空间 Botan 没有成员“Dynamically_Loaded_Library”

    Botan::Dynamically_Loaded_Library

  • name 后跟 '::' 必须是类或命名空间

所有的行都有错误,我真的搞混了。帮助将不胜感激

4

1 回答 1

2
  1. 构建Botan源码:

1-1。打开 Visual Studio 2019 的开发人员命令提示符

1-2。python "c:\botan\configure.py" --cc=msvc --cp=i386

1-3。制作

1-4。python "c:\botan\install.py"

1-5。制作安装

  1. 右键单击Visual Studio中的应用程序->属性-> VC++目录

2-1。包含目录:添加 C:\Botan\include\botan-2

2-2。库目录:添加 C:\Botan\lib

  1. 右键单击Visual Studio中的应用程序->属性->链接器->输入->附加依赖项->添加botan.lib

  2. 不要忘记将调试模式设置为 x86

  3. 感谢@Alexander,我应该包含“p11.h”并使用命名空间PKCS11定义;

  4. 重建项目:)

于 2019-08-02T12:40:57.557 回答