gpt4 book ai didi

c++ - QT中使用Botan C++加密文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:27 25 4
gpt4 key购买 nike

我在 Windows 10 上使用 Qt Creator 4.6.1
基于 Qt 5.10.1(MSVC 2015,32 位)
构建于 2018 年 5 月 2 日 04:24:33
qmakemingw491_32

Web 上有一个项目使用 botanwrapper 和 include Botan.pri

完整的代码很长,所以不能在这里发布,但可以在 http://www.voidrealms.com/index.php?r=source/view&id=1 找到。作为 zip 文件。

这一切都有效并加密了文件,但是当我将文件放入我的项目时,我遇到了大量的编译错误,如下所示。

botan.h:9380: error: expected identifier before '(' token
X942_DH_PARAMETERS = ANSI_X9_42,
^

and error: expected '}' before '(' token which points to the line

enum Format {
ANSI_X9_42,
ANSI_X9_57,
PKCS_3,

DSA_PARAMETERS = ANSI_X9_57,
DH_PARAMETERS = ANSI_X9_42,
X942_DH_PARAMETERS = ANSI_X9_42, // Error points to here
PKCS3_DH_PARAMETERS = PKCS_3
};

还有很多与 const 有关的错误,例如

error: non-member function 'bool Botan::verify_group(Botan::RandomNumberGenerator&, bool)' cannot have cv-qualifier

bool verify_group(RandomNumberGenerator& rng, bool strong) const;

指向下面的代码


bool verify_group(RandomNumberGenerator& rng, bool strong) const;

我已经检查了 .pro 文件中的 includes,并且我的文件设置与在相同设置上编译和运行的项目相同。我有相同的 botan.pri 文件,其中包含

win32 {
DEFINES += BOTAN_TARGET_OS_IS_WINDOWS \
BOTAN_TARGET_OS_HAS_LOADLIBRARY BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME \
BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE \
BOTAN_HAS_DYNAMIC_LOADER BOTAN_HAS_ENTROPY_SRC_CAPI BOTAN_HAS_ENTROPY_SRC_WIN32 \
BOTAN_HAS_MUTEX_WIN32

win32-msvc* {
QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250
DEFINES += BOTAN_BUILD_COMPILER_IS_MSVC BOTAN_TARGET_OS_HAS_GMTIME_S
} else {
QMAKE_CFLAGS += -fpermissive -finline-functions -Wno-long-long
QMAKE_CXXFLAGS += -fpermissive -finline-functions -Wno-long-long
}
LIBS += -ladvapi32 -luser32
}

我读过删除 const 将删除 1 个或多个错误,但我不明白为什么在愉快地编译 botan.h 并运行构建和加密文件。有人可以帮助解决这个问题。帮助表示赞赏。提前致谢。

最佳答案

问题是 Windows API 定义了一个与此枚举冲突的宏 X942_DH_PARAMETERS。 (事实上​​枚举在 Botan 的后续版本中被重命名,以避免这个问题 https://github.com/randombit/botan/issues/482 )。

您可以在包含 Botan header 之前使用 #undef X942_DH_PARAMETERS 来解决此问题。

关于c++ - QT中使用Botan C++加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51181330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com