http://www.mail-archive.com/[email protected]/msg02711.html
Nobody on the mailing list (including the developers) have commented on this issue...
From: [EMAIL PROTECTED]
To: [email protected]
Subject: VS.NET 2003 Compile Problem
Date: Tue, 12 Sep 2006 16:28:03 -0400
Hi all,
I’ve written a managed C++ wrapper DLL around the Crypto++ 5.2.3 DLL in order to expose some of the FIPS compliant encryption/decryption classes to .NET applications. I’m compiling the wrapper with VS.NET 2003 in Debug mode. Since I want to use Crypto++ in FIPS compliance mode, I included dll.h, but the linker fails with the message:
ManagedCryptoPP error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::DES::Base::ProcessAndXorBlock(unsigned char const *,unsigned char const *,unsigned char *)const " ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED])
My main header file brings in dll.h as well as a few other things:
#include "stdafx.h"
#include "cryptopp/dll.h"
//for __crt_dll_initialize and __crt_dll_terminate
#include <windows.h>
#include "_vcclrit.h"
USING_NAMESPACE(CryptoPP)
USING_NAMESPACE(std)
I don’t bring anything else in. >From what I can tell, the problem only occurs when the /clr compiler switch is present. The switch is required to in order create a managed wrapper DLL, I cannot remove it. Also, I considered removing precompiled headers in case that might make a difference, but I can’t remove precompiled headers when the /clr switch is present. Is there a possible workaround for this issue and will their ever be a .NET compatible, FIPS-compliant version of Crypto++ available, or are we stuck writing wrappers?
Windows Live Spaces is here! It’s easy to create your own personal Web site. Check it out!
