bcc32 ...  .\crypto\rand\rand_win.c
.\crypto\rand\rand_win.c:
Error E2303 .\crypto\rand\rand_win.c 171: Type name expected
Error E2451 .\crypto\rand\rand_win.c 454: Undefined symbol
'HEAP32FIRST' in function RAND_poll

I've examined the unit file 'rand_win.c' and at the line 171 I've found
this statement:

typedef BOOL (WINAPI *HEAP32FIRST)(LPHEAPENTRY32, DWORD, SIZE_T);

The previous version of openssl (0.9.8) contains this statement instead
(and all goes well):

typedef BOOL (WINAPI *HEAP32FIRST)(LPHEAPENTRY32, DWORD, DWORD);

The log record for this declaration goes as following. DWORD is found inappropriate on Win64, replace it with ULONG_PTR [as per latest Microsoft SDK], which covers both Win32 and Win64. ULONG_PTR is found undefined in elder Microsoft headers, replace it with SIZE_T, which still covers both Win32 and Win64. So what you're saying is that SIZE_T is undefined in even elder or bastardized headers... Well, one can replace it with ANSI size_t, which still covers both Win32 and Win64...

I suppose the problem resides in the SIZE_T declaration: this typedef (that
is equivalent to a ULONG_PTR typedef) is NOT defined in the header
files of the Win32 APIs supplied with BCB4. I can substitute the first
typedef with the second but I don't know if this is goof or not.

As long as you target Win32 you can safely switch back to DWORD, but do check size_t. A.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to