多线程DLL中的Cryptopp,VS2010
Cryptopp in multi-threaded DLL, VS2010
>我正在尝试使用VS 2010在XPSP3上使用Cryptopp 5.6.2。新来的...
我需要使用多线程 DLL,因为这是我的应用程序使用的,因此我将 Crypto++ 项目属性中的所有引用从 /MT[d]
更改为 /MD[d]
。所有加密++似乎都可以构建。
但是,我对我的C++控制台应用程序并不满意 - 我有标准GetNewAndDeleteForCryptoPP
,这似乎被称为确定(删除它,cryptopp 给出错误,包括它并且 cryptopp 不打印警告)。
一切似乎都很好,直到我添加行PKCS5_PBKDF2_HMAC<SHA256>
.它编译良好,但LNK2001对于CryptoPP::ThreadUserTimer::GetCurrentTimerValue(void)
和 CryptoPP::ThreadUserTimer::TicksPerSecond(void)
.
这里没有想法 - 由于我工作地点的神秘规则,我无法粘贴代码,但是我已经包含了dll.h
、cryptlib.h
、osrng.h
、aes.h
、sha.h
、hex.h
、integer.h
、modes.h
和pwdbased.h
。
我错过了一些显而易见的东西吗?
我也遇到了这个问题,看起来该类没有被导出。在hrtimer.h
ThreadUserTimer
声明中添加CRYPTOPP_DLL
将修复它。
user1520427为您提供了答案。您需要为一些类和函数添加CRYPTOPP_DLL
。
PKCS5_PBKDF2_HMAC<SHA256>
是仅标头实现,因此不需要 CRYPTOPP_DLL
。见 pwdbased.h。
但是,ThreadUserTimer
不仅仅是标头,因此您需要修改hrtimer.h
:
老:
00042 class ThreadUserTimer : public TimerBase
00043 {
00044 ...
00048 };
新增功能:
00042 class CRYPTOPP_DLL ThreadUserTimer : public TimerBase
00043 {
00044 ...
00048 };
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 哈希文件递归并保存到矢量Cryptopp中
- 如何在C++(VS2010)中设置超时读取USB端口?
- Cryptopp:获取密码输入的填充字符串
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- 将加密消息从 php 发送到 C++ 应用程序,然后使用 CryptoPP 进行解密
- VS2010 C++ 调试托管 (C++/CLI) DLL
- 在VS2010上使用PCL 1.6.0的问题
- 使用 msvc /MDd cryptlib.lib 构建 Crypto++ 链接时找不到 cryptopp.lib
- 在使用VS2010构建ACE和TAO(CORBA)时发生了许多错误
- LibVLC 的新手 - 在 VS2010 上试用 libVLC
- 提升 vs2010 上的进程错误
- 提升 ASIO 1.66 示例无法构建 - async_connect() 需要单个迭代器无法在 VS2010 上链接
- CryptoPP vs PHP Base64 编码/解码
- 将cryptopp :: Integer转换为lpctstr
- 无法与未定义的 VTT 引用链接 for CryptoPP::RSAFunction
- VS2010中的向量初始化
- 在vs2010中使用iostream时,出现错误C2039:'exit':不是"全局命名空间"的成员
- VS2010无法链接它应该构建的库
- 多线程DLL中的Cryptopp,VS2010