Hello,
 
As other posters have noted, Crypto++ 5.2.1 does not compile with Visual Studio 2002 (VC 7.0). There appears to be two (at least) separate problems.
 
1 - C:\Program\Microsoft Visual Studio .NET\Vc7\include\xutility(98): error C2825: '_Iter::iterator_category': cannot form a qualified name
 
which comes from the following in zdeflate.cpp:
 

#if defined(_MSC_VER) && !defined(__MWERKS__) && (_MSC_VER < 1300)

// VC60 workaround: built-in reverse_iterator has two template parameters, Dinkumware only has one

typedef reverse_bidirectional_iterator<unsigned int *, unsigned int> RevIt;

#else

typedef reverse_iterator<unsigned int *> RevIt;

#endif

If compiled if #if 1 || ..., to emulate VC60 - that part compiles. (There's a similar ref in ida.cpp, fixable in the same way). This could probably be fixed by a more precise test for _MSC_VER to differentiate between VC 7.0 and VC 7.1 I guess. Anybody know what _MSC_VER is for 7.1? (Run CL /? at the command prompt after running VCVARS.BAT and check the version...)

2 - c:\tmp\cryptopp521\simple.h(179) : fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 2844)
         Please choose the Technical Support command on the Visual C++
         Help menu, or open the Technical Support help file for more information

The second one is harder to fix in an easy manner it appears. It should be noted that it's only for the DLL part, so it appears to have to do with the compiler having problems with all those __declspec(novtable) and __declspec(dllexport) that the templates will generate. There may, or may not, be a fix available for VC 7.0, but it's not easily available. Can this be fixed in a way to be compatible with both versions? It would appear that the use of CRYPTOPP_DLL and CRYPTOPP_NOVTABLE is rather promiscuous...

It's possible to use it appears, if not compiled for DLL usage with the two patches above in zdeflate.cpp and ida.cpp, at leat it compiles... Unfortunately I've tried 5.1, which compiles - but the first thing happening was I got bitten by a bug that was fixed in 5.2.1...

Regards,

Svante

Reply via email to