Same here. I too faced the same issue when I was trying to build the 'req' utility using Visual Studio. A short list of errors is as below d:\ssl\openssl-0.9.8k\include\openssl\store.h(390) : error C2059: syntax error : 'type' d:\ssl\openssl-0.9.8k\include\openssl\store.h(397) : error C2059: syntax error : ',' d:\ssl\openssl-0.9.8k\include\openssl\store.h(397) : error C2143: syntax error : missing ')' before '(' d:\ssl\openssl-0.9.8k\include\openssl\store.h(397) : error C2143: syntax error : missing ')' before '(' d:\ssl\openssl-0.9.8k\include\openssl\store.h(397) : error C2091: function returns function d:\ssl\openssl-0.9.8k\include\openssl\store.h(397) : error C2091: function returns function <SNIP>
All these errors seem to crop up because X509_NAME and X509_EXTENSIONS were defined in wincrypt.h. Though we seem to #undef them in x509.h for OPENSSL_SYS_WIN32. Is there any way out? Thanks, Sandeep On Fri, Oct 16, 2009 at 6:11 PM, Domingo Kiser <domingo.ki...@gmail.com>wrote: > Hello all, > > I am working on porting a linux app that depends on OpenSSL to windows > and ran into the visual studio 2009 "c2226" unexpected type "LPCSTR". > The order of #includes that can generate this error is shown below. > Note that only ssl includes are used. Adding a #undef X509_NAME after > the rand include fixes the problem, BUT only if rand is included > before engine. I looked at both header files and noticed that rand > includes windows.h, which causes the problem. Also, engine.h includes > rand.h. Rand does not use the X509_NAME type within its header > definition, but engine does. > > Long story short, I think rand.h should undefine X509_NAME immediately > after its include of windows.h....this seemed to fix my problems. The > other solution was to include rand, undefine the name, then include > engine. > > I ran into a previous post on the net to use the NOCRYPT option which > forces visual studio to not include the windows crypto api's, which is > ultimately the culprit in redefining X509_NAME. This worked as well, > but I didn't feel it was the correct solution. > > Chime in and let me know if I am off base here or if the rand.h header > fix is a valid one. > > Code: > #include <openssl/ssl.h> > #include <openssl/rand.h> > // do the following if proposed fix to rand.h is not there > // this only works if engine.h follows rand.h, at least In > // my initial screwing around > // undef X509_NAME > #include <openssl/engine.h> > #incude <openssl/err.h> > #include <openssl/x503v3.h> > #include <openssl/fips.h> > > > Cheers, > > --Domingo > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager majord...@openssl.org >