I've built 0.9.7 with VC 6.0 SP3 as well as VC 7.0 without incident. I'm wondering if there are any Environment Variables defined that might be altering the build environment.cl ... -c .\crypto\asn1\n_pkey.c .\crypto\asn1\n_pkey.c(96) : error C2370: 'NETSCAPE_ENCRYPTED_PKEY_it' : redefinition; different storage class .\crypto\asn1\n_pkey.c(93) : see declaration of 'NETSCAPE_ENCRYPTED_PKEY_it'Strange, I checked VC++ 6.0 SP3 and had no problems. What version of VC++ are you using?First of all I want to make it clear that I do *not* have environment for VC-WIN32 build. All I say here is based on experinence not related to OpenSSL.How does one tell VC++SP level? I couldn't find a way. It's probably more appropriate to ask for version number returned by cl. Mine says 12.00.8804... In either case I believe it's OPENSSL_EXTERN which is "responsible" for this. On Windows OPENSLL_EXTERN is[?]/can be defined as "extern _declspec(dllimport)" and the problem must be that n_pkey.c refers to same variable as both local and OPENSSL_EXTERN. The catch is that _decspec(dllimport) is [and has to be] treated differently. Most notably "_declspec(dllimport) int i; int foo(){return i;}" effectively compiles as "int *_i; int foo() {return *_i;}." As you can see generated machine code has to be substantially different from one generated for plain "int i; int foo(){return i;}" and this is what the compiler must be complaining about. At the very least if I try to compile "int i;_declspec(dllimport) int i;" I get the very same error code, C2370. A.
Also, it would be useful to know which makefile is being used.