Jump to content

M4rc0.to

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Neutral
  1. M4rc0.to

    RAD Studio 11.0 Support

    Hello Angus, I should have found the way to compile the 64bit version 8.67 (and I believe therefore also all the previous 8.x versions, and with previous versions of C++ Builder). It is necessary to slightly modify 4 sources: OverbyteIcsCryptUiApi.pas OverbyteIcsMLang.pas OverbyteIcsWinCrypt.pas OverbyteIcsWinnls.pas In these 4 sources you have to disable {$WEAKPACKAGEUNIT} for the C ++ compiler, this fixes the linker errors. Example: {$IFNDEF BCB} {$WEAKPACKAGEUNIT} {$ENDIF} I compiled and tested the OverbyteIcsMailRcv.exe example, using TSslPOP3Cli and the new 32 and 64bit libcrypto-3 and libssl-3 DLLs. The 32bit version of software runs perfectly, both in debug and release configuration, linked dynamically or statically. The 64bit version of software runs both in debug and release configuration, but only if statically linked (I'll do some tests later). I also found a "problem" in the OverbyteIcsUtils.pas file, the following lines should be added, starting around line 1070~1080, to avoid symbol conflicts with those contained in the C ++ headers shlobj.h and ShlObj_core.h: {$EXTERNALSYM CSIDL_DESKTOP} {$EXTERNALSYM CSIDL_INTERNET} {$EXTERNALSYM CSIDL_PROGRAMS} {$EXTERNALSYM CSIDL_CONTROLS} {$EXTERNALSYM CSIDL_PRINTERS} {$EXTERNALSYM CSIDL_PERSONAL} {$EXTERNALSYM CSIDL_FAVORITES} {$EXTERNALSYM CSIDL_STARTUP} {$EXTERNALSYM CSIDL_RECENT} {$EXTERNALSYM CSIDL_SENDTO} {$EXTERNALSYM CSIDL_BITBUCKET} {$EXTERNALSYM CSIDL_STARTMENU} {$EXTERNALSYM CSIDL_MYDOCUMENTS} {$EXTERNALSYM CSIDL_MYMUSIC} {$EXTERNALSYM CSIDL_MYVIDEO} {$EXTERNALSYM CSIDL_DESKTOPDIRECTORY} {$EXTERNALSYM CSIDL_DRIVES} {$EXTERNALSYM CSIDL_NETWORK} {$EXTERNALSYM CSIDL_NETHOOD} {$EXTERNALSYM CSIDL_FONTS} {$EXTERNALSYM CSIDL_TEMPLATES} {$EXTERNALSYM CSIDL_COMMON_STARTMENU} {$EXTERNALSYM CSIDL_COMMON_PROGRAMS} {$EXTERNALSYM CSIDL_COMMON_STARTUP} {$EXTERNALSYM CSIDL_COMMON_DESKTOPDIRECTORY} {$EXTERNALSYM CSIDL_APPDATA} {$EXTERNALSYM CSIDL_PRINTHOOD} {$EXTERNALSYM CSIDL_LOCAL_APPDATA} {$EXTERNALSYM CSIDL_ALTSTARTUP} {$EXTERNALSYM CSIDL_COMMON_ALTSTARTUP} {$EXTERNALSYM CSIDL_COMMON_FAVORITES} {$EXTERNALSYM CSIDL_INTERNET_CACHE} {$EXTERNALSYM CSIDL_COOKIES} {$EXTERNALSYM CSIDL_HISTORY} {$EXTERNALSYM CSIDL_COMMON_APPDATA} {$EXTERNALSYM CSIDL_WINDOWS} {$EXTERNALSYM CSIDL_SYSTEM} {$EXTERNALSYM CSIDL_PROGRAM_FILES} {$EXTERNALSYM CSIDL_MYPICTURES} {$EXTERNALSYM CSIDL_PROFILE} {$EXTERNALSYM CSIDL_SYSTEMX86} {$EXTERNALSYM CSIDL_PROGRAM_FILESX86} {$EXTERNALSYM CSIDL_PROGRAM_FILES_COMMON} {$EXTERNALSYM CSIDL_PROGRAM_FILES_COMMONX86} {$EXTERNALSYM CSIDL_COMMON_TEMPLATES} {$EXTERNALSYM CSIDL_COMMON_DOCUMENTS} {$EXTERNALSYM CSIDL_COMMON_ADMINTOOLS} {$EXTERNALSYM CSIDL_ADMINTOOLS} {$EXTERNALSYM CSIDL_CONNECTIONS} {$EXTERNALSYM CSIDL_COMMON_MUSIC} {$EXTERNALSYM CSIDL_COMMON_PICTURES} {$EXTERNALSYM CSIDL_COMMON_VIDEO} {$EXTERNALSYM CSIDL_RESOURCES} {$EXTERNALSYM CSIDL_RESOURCES_LOCALIZED} {$EXTERNALSYM CSIDL_COMMON_OEM_LINKS} {$EXTERNALSYM CSIDL_CDBURN_AREA} {$EXTERNALSYM CSIDL_COMPUTERSNEARME} {$EXTERNALSYM CSIDL_PLAYLISTS} {$EXTERNALSYM CSIDL_SAMPLE_MUSIC} {$EXTERNALSYM CSIDL_SAMPLE_PLAYLISTS} {$EXTERNALSYM CSIDL_SAMPLE_PICTURES} {$EXTERNALSYM CSIDL_SAMPLE_VIDEOS} {$EXTERNALSYM CSIDL_PHOTOALBUMS} {$EXTERNALSYM CSIDL_FLAG_CREATE} {$EXTERNALSYM CSIDL_FLAG_DONT_VERIFY} {$EXTERNALSYM CSIDL_FLAG_NO_ALIAS} {$EXTERNALSYM CSIDL_FLAG_PER_USER_INIT} {$EXTERNALSYM CSIDL_FLAG_MASK} Regards, Marco.
  2. M4rc0.to

    RAD Studio 11.0 Support

    EUREKA! 💪 Now ICS 8.67 for C++ Builder Alexandria (32 bit) works fine! Open all *CB110* .cbproj files and: Replace "\103" with "\110" in all *CB110* .cbproj files Remove any reference to OverbyteIcsSslThrdLock.pas and OverbyteIcsSslThrdLock.dcr  In files IcsVclCB110Run.cpp and IcsFmxCB110Run.cpp modify this section: #ifdef _WIN64 #pragma link "cryptui.a" #pragma link "crypt32.a" #pragma link "ncrypt.a" #pragma link "IcsCommonCB110Run.a" #else #pragma link "cryptui.lib" #pragma link "crypt32.lib" #pragma link "ncrypt.lib" #pragma link "IcsCommonCB110Run.lib" #endif Thats'all! P.S.: I still have problems compiling 64 bit packages, there is a strange "access denied": [ilink64 Error] Error: Could not write to C:\COMPONENTI\ICS867\LIB\RELEASE\WIN64\110\OVERBYTEICSCRYPTUIAPI.O (error code 5) [ilink64 Error] Error: Could not write to C:\COMPONENTI\ICS867\LIB\RELEASE\WIN64\110\OVERBYTEICSMLANG.O (error code 5) [ilink64 Error] Error: Could not write to C:\COMPONENTI\ICS867\LIB\RELEASE\WIN64\110\OVERBYTEICSWINCRYPT.O (error code 5) [ilink64 Error] Error: Could not write to C:\COMPONENTI\ICS867\LIB\RELEASE\WIN64\110\OVERBYTEICSWINNLS.O (error code 5) Marco
  3. M4rc0.to

    RAD Studio 11.0 Support

    Hello Angus, I am compiling ICS 8.67 for C++ Builder Alexandria, downloaded from svn, and I found some errors: Replace "\103" with "\110" in all *CB110* .cbproj files File: IcsVclCB110Run.cpp Change #pragma link "IcsCommonCB103Run.a" to #pragma link "IcsCommonCB110Run.a" Change #pragma link "IcsCommonCB103Run.lib" to #pragma link "IcsCommonCB110Run.lib" File: IcsVclCB110Run.cbproj File OverbyteIcsSslThrdLock.pas is missing in \Source folder (or should it be deleted from the project?) Errors found linking IcsVclCB110Run: [ilink32 Error] Error: Unresolved external 'NCryptGetProperty' referenced from C:\COMPONENTS\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptExportKey' referenced from C:\COMPONENTS\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptFreeObject' referenced from C:\COMPONENTI\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptDeleteKey' referenced from C:\COMPONENTS\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptOpenStorageProvider' referenced from C:\COMPONENTI\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptEnumKeys' referenced from C:\COMPONENTS\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ [ilink32 Error] Error: Unresolved external 'NCryptOpenKey' referenced from C:\COMPONENTS\ICS867\LIB\RELEASE\WIN32\110\OVERBYTEICSMSSSLUTILS.OBJ I can't understand why these external NCrypt* exist in OverbyteIcsWinCrypt.dcu, while missing in OverbyteIcsWinCrypt.obj... I don't know how to fix this problem Regards.
  4. Hi, I just compiled version 8.66 with BDS2006 (C ++), and I found a small problem in the OverbyteIcsLIBEAY.pas source, at line 1785: CRYPTO_free: procedure (P: Pointer; data: PAnsiChar; int: Integer); cdecl = nil; // AG {V8.66 two missing arguments} A variable like "int", which corresponds to the type "Integer" in Pascal, in the generated .hpp header becomes extern PACKAGE void __cdecl (* CRYPTO_free) (void * P, char * data, int int); which results in a compiler error. Marco.
×