cryptlib.lib
Crypto++ 库通过针对和编译来支持后期绑定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
?