HTMLValidator.com 6 Posted November 14 (edited) I'm trying to move to the new C++ Win64x toolchain in RAD Studio 12.2 Patch 2 and I upgraded to ICS 9.3 but now when I try to build a basic C++ VCL app with just a form and a TSslHttpCli component I get these compiler errors: With bcc32c: [bcc32c Error] OverbyteIcsTypes.hpp(74): unknown type name '_TRANSMIT_FILE_BUFFERS' [bcc32c Error] OverbyteIcsTypes.hpp(76): unknown type name '_TRANSMIT_FILE_BUFFERS' [bcc32c Error] OverbyteIcsTypes.hpp(78): unknown type name 'ip_mreq' [bcc32c Error] OverbyteIcsTypes.hpp(80): unknown type name 'ip_mreq' [bcc32c Error] OverbyteIcsTypes.hpp(94): unknown type name 'sockaddr_in6' [bcc32c Error] OverbyteIcsTypes.hpp(96): unknown type name 'sockaddr_in6' [bcc32c Error] OverbyteIcsTypes.hpp(98): unknown type name 'ipv6_mreq' [bcc32c Error] OverbyteIcsTypes.hpp(100): unknown type name 'PIPV6_MREQ' [bcc32c Error] OverbyteIcsUtils.hpp(624): unknown type name 'sockaddr_in6' [bcc32c Error] OverbyteIcsUtils.hpp(624): expected unqualified-id With bcc64x: [bcc64x Error] OverbyteIcsTypes.hpp(74): unknown type name '_TRANSMIT_FILE_BUFFERS' [bcc64x Error] OverbyteIcsTypes.hpp(76): unknown type name '_TRANSMIT_FILE_BUFFERS' [bcc64x Error] OverbyteIcsTypes.hpp(78): unknown type name 'ip_mreq' [bcc64x Error] OverbyteIcsTypes.hpp(80): unknown type name 'ip_mreq' [bcc64x Error] OverbyteIcsTypes.hpp(94): unknown type name 'sockaddr_in6' [bcc64x Error] OverbyteIcsTypes.hpp(96): unknown type name 'sockaddr_in6' [bcc64x Error] OverbyteIcsTypes.hpp(98): unknown type name 'ipv6_mreq' [bcc64x Error] OverbyteIcsTypes.hpp(100): unknown type name 'PIPV6_MREQ' [bcc64x Error] OverbyteIcsUtils.hpp(614): unknown type name 'sockaddr_in6' Any solution or should I try to go back to a previous version like 8.70 which was working before? Edited November 14 by HTMLValidator.com Share this post Link to post
HTMLValidator.com 6 Posted November 14 Well, after playing around, I added these two lines to OverbyteIcsTypes.hpp (after '#include <System.SysUtils.hpp>') and it worked! #include <mswsock.h> #include <ws2ipdef.h> So hopefully this is helpful. I am still trying to get everything to work but at least it compiled and linked. 1 Share this post Link to post
w0wbagger 0 Posted November 14 Thank you! This is the only thing keeping me from moving to 12.2 (I couldn't get 9.x to compile on it), so I'll try this soon! Did you have to use the 'classic' borland compiler for the 32-bit? Share this post Link to post
Angus Robertson 574 Posted November 14 I mentioned here in October that the beta version of ICS in SVN and the overnight zip now builds (mostly) correctly for C++ and D12.2, V9.3 does not! But I've had zero feedback from C++ users, despite at least three users agreeing to test it. So please stop reporting C++ problems with ICS versions known not to work, and help test the official version. Angus Share this post Link to post
HTMLValidator.com 6 Posted November 14 (edited) 12 hours ago, w0wbagger said: Thank you! This is the only thing keeping me from moving to 12.2 (I couldn't get 9.x to compile on it), so I'll try this soon! Did you have to use the 'classic' borland compiler for the 32-bit? No, I don't use the 'classic' 32-bit compiler anymore. Oh, when building the ICS projects I also used "..\Lib\$(Config)\$(Platform)$(CC_SUFFIX)\$(ProductVersion)" for the 3 output folders in "Building > Delphi Compiler > Output - C/C++" for "All configurations - All platforms" because they were blank and it was throwing everything into the same folder. Then I had to make sure all the search paths were correct so the compiler and linker could find everything it needed. I'm still having issues getting everything to worth though but not sure if it's ICS or something else. Edited November 14 by HTMLValidator.com Share this post Link to post
w0wbagger 0 Posted Saturday at 05:40 AM On 11/14/2024 at 4:28 AM, Angus Robertson said: I mentioned here in October that the beta version of ICS in SVN and the overnight zip now builds (mostly) correctly for C++ and D12.2, V9.3 does not! But I've had zero feedback from C++ users, despite at least three users agreeing to test it. So please stop reporting C++ problems with ICS versions known not to work, and help test the official version. Angus Just downloaded the overnights and trying this weekend, Angus. Sorry it's taken so long, but I'm being smashed with my current project. Share this post Link to post
w0wbagger 0 Posted Saturday at 07:04 AM I don't know if we should start a new thread specifically to discuss compiling the overnights in C++ Builder 12.2? I tried both the groupproj and the individual .cbproj files. groupproj was not working at all, but I have traditionally had better luck compiling and installing each of the cbproj file separately. However, just trying to compile ICSCommonCBNewRun failed when compiling the 32-bit version. I got this error from ilink32 [ilink32 Error] Error: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\23.0\LIB\WIN32C\RELEASE\CP32MT.LIB|crtlvcl [ilink32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\23.0\LIB\WIN32C\RELEASE\CP32MT.LIB|crtlvcl I was not having this issue in previous attempts. I was able at one point to compile and install all 32-bit packages, although could never get my program working. @HTMLvalidator, were you able to get the groupproj to compile without changing many options? Can you try whatever you did with the overnights, per Angus' request? It would be nice to have a stable, easily installable C++ version upon which future builds could be made that includes all of Angus' significant improvements. thanks. Share this post Link to post
Angus Robertson 574 Posted Saturday at 09:28 AM I started a new thread about C++ 21 October, you replied and agreed to test the new version. All the cbproj packages and some cpp and pas files changed in October, so any comments relating to C++ in V9.3 are irrelevant to building the overnight beta version. Angus Share this post Link to post
HTMLValidator.com 6 Posted Saturday at 05:27 PM 10 hours ago, w0wbagger said: I was not having this issue in previous attempts. I was able at one point to compile and install all 32-bit packages, although could never get my program working. @HTMLvalidator, were you able to get the groupproj to compile without changing many options? Can you try whatever you did with the overnights, per Angus' request? It would be nice to have a stable, easily installable C++ version upon which future builds could be made that includes all of Angus' significant improvements. thanks. I wish I had time to mess with this but I am (again) fighting my development tools to get stable working builds of my app. I've fought many times before and sometimes they are problems with the paths I'm using (and maybe old files laying around) and sometimes bugs with their compiler and/or linker... or maybe using a compiler/linker setting that is buggy or broken or otherwise problematic. The "good" news is that after this I am probably going to stop spending money on new versions of everything and stick with what I have since sales and hassle don't justify continuing to spend money on upgrading (often buggy) development tools... but I hope to end with being able to go forward with the new C++ toolchain (though I'm thinking there might be some bugs in it causing the current problems I'm having). Anyway, I always use the Delphi projects (not C++ projects because it seems those are often neglected) to compile components and set the Delphi projects to generate all C++ files and output the files to each platform's own folder - i.e. one folder for Win32, one for Win64, and now one for Win64x. This is what I did to get v9.3 compiled (along with adding the #include's to a header file mentioned above) and it seems to work although I am having other issues but I don't think those issues are caused by ICS. Share this post Link to post