C++ 多线程DLL中的Cryptopp,VS2010

C++ 多线程DLL中的Cryptopp,VS2010,c++,visual-studio-2010,crypto++,C++,Visual Studio 2010,Crypto++,我正在尝试使用VS2010在XPSP3上使用Cryptopp 5.6.2。新来的 我需要使用多线程DLL,因为这是我的应用程序使用的,所以我将Crypto++项目属性中的所有引用从/MT[d]更改为/MD[d]。所有Crypto++似乎都可以构建 但是,我的C++控制台应用程序都不满意,我有标准 GETNeNoDeleDeleTopTopp ,这似乎是OK(删除它,CytPopp给出了一个错误,包括它,CytoTopp不打印警告)。 在我添加行PKCS5\u PBKDF2\u HMAC之前,一切

我正在尝试使用VS2010在XPSP3上使用Cryptopp 5.6.2。新来的

我需要使用多线程DLL,因为这是我的应用程序使用的,所以我将Crypto++项目属性中的所有引用从
/MT[d]
更改为
/MD[d]
。所有Crypto++似乎都可以构建

但是,我的C++控制台应用程序都不满意,我有标准<代码> GETNeNoDeleDeleTopTopp ,这似乎是OK(删除它,CytPopp给出了一个错误,包括它,CytoTopp不打印警告)。 在我添加行

PKCS5\u PBKDF2\u HMAC
之前,一切似乎都很好。对于
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\u DLL
将修复此问题

给了你答案。您需要为一些类和函数添加
CRYPTOPP\u DLL

PKCS5\u PBKDF2\u HMAC
是一个仅头的实现,因此它不需要
CRYPTOPP\u DLL
。看

但是,
ThreadUserTimer
不仅仅是标题,因此需要修改:

旧的:

新的:


你修过这个吗?我也有同样的问题。
00042 class ThreadUserTimer : public TimerBase
00043 {
00044    ...
00048 };
00042 class CRYPTOPP_DLL ThreadUserTimer : public TimerBase
00043 {
00044     ...
00048 };