Crypto++ ライブラリは、cryptlib.lib
およびに対してコンパイルすることにより、遅延バインディングをサポートしcryptopp.lib
ます。これには、 を使用する必要がありますcryptopp.dll
。これにより、この dll を遅延ロードしようとすると/DELAYLOAD:cryptopp.dll
、必要なインポートのために遅延ロードできなかったというリンク エラーが発生します。
例として、次のコードを参照してください。
#include <Crypto++/dll.h>
#include <crypto++/base64.h>
bool HexDecode(const std::string& strHex, std::string& strData)
{
try
{
CryptoPP::StringSource(strHex, true,
new CryptoPP::Base64Decoder(
new CryptoPP::StringSink(strData)));
}
catch(...)
{
return false;
}
return true;
}
これにより、次のリンク エラーが発生します。
LINK : fatal error LNK1194: Delay loading "cryptopp.dll" not possible because of import of data symbol ""__declspec(dllimport) bool (__cdecl* CryptoPP::g_pAssignIntToInteger)(class type_info const &,void *,void const *)" (__imp_?g_pAssignIntToInteger@CryptoPP@@3P6A_NABVtype_info@@PAXPBX@ZA)". Link without /DELAYLOAD:cryptopp.dll
ロードの遅延にcryptopp.dll
成功した人はいますか?