2

VS 2010 を使用して XPSP3 で Cryptopp 5.6.2 を使用しようとしています。

アプリケーションで使用するマルチスレッド DLL を使用する必要があるため、Crypto++ プロジェクト プロパティのすべての参照を から に変更し/MT[d]ました/MD[d]。すべての Crypto++ は正常にビルドされているようです。

ただし、私のC++コンソールアプリにはすべて満足していません-私は標準を持っており、GetNewAndDeleteForCryptoPPそれはOKと呼ばれているようです(それを削除するとcryptopがエラーを出し、それを含めてもcryptopは警告を出力しません)。

行を追加するまで、すべて問題ないようPKCS5_PBKDF2_HMAC<SHA256>です。CryptoPP::ThreadUserTimer::GetCurrentTimerValue(void)正常にコンパイルされますが、および の未解決のシンボルに対して 2 つの LNK2001 エラーが発生しCryptoPP::ThreadUserTimer::TicksPerSecond(void)ます。

ここでアイデアが不足しています-私が働いている場所の難解なルールのためにコードを貼り付けることはできませんが、、、、、、、、、およびを含めdll.hましcryptlib.hた。osrng.haes.hsha.hhex.hinteger.hmodes.hpwdbased.h

私は盲目的に明らかな何かを見逃していますか?

4

2 に答える 2

1

user1520427から回答がありました。CRYPTOPP_DLLいくつかのクラスと関数を追加する必要があります。

PKCS5_PBKDF2_HMAC<SHA256>はヘッダーのみの実装なので、必要ありません CRYPTOPP_DLLpwdbased.hを参照してください。

ただし、ヘッダーのみでThreadUserTimerないため、次のように変更する必要がありますhrtimer.h

年:

00042 class ThreadUserTimer : public TimerBase
00043 {
00044    ...
00048 };

新着:

00042 class CRYPTOPP_DLL ThreadUserTimer : public TimerBase
00043 {
00044     ...
00048 };
于 2014-01-10T04:28:03.440 に答える