Jump to content
Angus Robertson

RAD Studio 11.0 Support

Recommended Posts

ICS V8.67 has packages for Delphi and C++ 11.0, currently only available from SVN and the overnight zip, with a final release due next week. 

 

http://wiki.overbyte.eu/wiki/index.php/ICS_Download

 

There was a major new OpenSSL 3.0 release this week, just finishing testing and integration with V8.67.

 

Currently, many older ICS icons appeared incorrectly with a magenta background in Delphi 11.0 due to transparency being ignored, these will be fixed for the final release. 

 

Angus

  • Thanks 4

Share this post


Link to post

Salut,

 

I downloaded v8.67 from svn and it is complaining of a missing file ( under Delphi Alexandria )
[dcc32 Fatal Error] OverbyteIcsD110Run.dpk(169): F1026 File not found: '..\Source\OverbyteIcsLibeayEx.pas'

 

Under Delphi Sydney it is compiling Ok. (That file is not in the project)

Edited by Clément

Share this post


Link to post

Thanks, I always install the VCL/FMX packages, should test the VCL only ones more often. Will be fixed tomorrow.

 

Angus

 

Share this post


Link to post

Good day Angus,

 

I've got the latest RAD studio 11 installed and to continue with my projects I'd need the ICS internet components.

Are you able to help me how to download and Install them from the www.overbyte.eu website?

If I download the latest snapshot (from: http://wiki.overbyte.eu/arch/icsv8w.zip ) - Version: Revised: September 9, 2021

In the readme8.txt file it mentions the Delphi 11 version:

>> Delphi 11.0      :  D110InstallVclFmx.groupproj // Both VCL and FireMonkey components

But in the ICS Install\ Directory the file 'D110InstallVclFmx.groupproj' is missing

 

Thank you for your reply.

Regards,

Share this post


Link to post

Sorry again, the Delphi 11 packages are in SVN, but are not yet zipped automatically into the zip file, will be fixed shortly.  

 

Later: the zip is now corrected, with Delphi 11 packages.

 

Angus

 

Edited by Angus Robertson

Share this post


Link to post

Hello Angus,

 

Oke, thank you. I don't have a SVN client installed. I've tried it once but it created too many dependensies too my likeing.

Maybe it's an idea too deposit ICS into github.com ? Then it's easy for users like me to download the latest snapshot as zip file, while also easy to maintain with git.

Anyway, thanks so much. I will wait until the zip file is available on the site.

 

 

Regards,

 

Share this post


Link to post

The zip is available now. 

 

I find Github massively more complicated to use than SVN, it also runs on my own servers not in the cloud, so SVN is here to stay for now.  I use TortoiseSVN which is simple to install and use.

But it's rare for SVN to have files not in the nightly zip, usually only during beta testing new compilers. 

 

Angus

Share this post


Link to post

Hello Angus,

Sorry to bothering you, maybe I'm doing something wrong.

But I tried to download the zip file from http://wiki.overbyte.eu/arch/icsv8w.zip (at 11:16 amsterdam time) and it still does not contain the D11xx.groupproj file in Install diretory.

Is the http://wiki.overbyte.eu/arch/icsv8w.zip the correct zip file to download or is the zip file on another url ?

Thanks again ;-)

Share this post


Link to post
On 9/17/2021 at 9:58 AM, Jasja said:

Hello Angus,

 

Oke, thank you. I don't have a SVN client installed. I've tried it once but it created too many dependensies too my likeing.

Maybe it's an idea too deposit ICS into github.com ? Then it's easy for users like me to download the latest snapshot as zip file, while also easy to maintain with git.

Anyway, thanks so much. I will wait until the zip file is available on the site.

 

 

Regards,

 

I don't know which SVN client you used, but Tortoise SVN integrates nicely into Windows Explorer and works quite well...

After installing that one create a new folder and right click on it, select "SVN Checkout" and enter the SVN Url of ICS and things should be on your computer a few seconds later...

Share this post


Link to post

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.

Edited by M4rc0.to
Question added

Share this post


Link to post

Thanks, OverbyteIcsSslThrdLock has gone, I'll fix the package problems, I can not build them so rely on others to test them. 

 

No idea how the C++ obj files are created, guess it needs to be rebuilt somehow.

 

Angus 

Share this post


Link to post

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

Share this post


Link to post

The purpose of #pragma is a mystery to me lacking any C++ knowledge, but I'll fix it!  Should be in SVN in a couple of days, thanks again.

 

I don't get any errors building Delphi Win64 samples, I specifically created a lot of Win64 projects to allow more testing, but less sure about the Delphi 11.0 64-bit debugger, the IDE locked up on me. 

 

Angus

 

Share this post


Link to post

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.

Edited by M4rc0.to

Share this post


Link to post

Thanks again for the C++ changes, they are all now done and in SVN and the overnight zip, so ICS should install correctly on C++ Builder for 10.4 and 11.0.

 

Angus

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×