Embarcadero recently announced that RAD Studio XE2 will be launched in the next few weeks, the main XE2 information page is currently:
http://www.embarcadero.com/world-tour The NDA on vendors has been relaxed so we can now talk about some new XE2 features and components for XE2. This note briefly overviews XE2 and which new features will be supported by ICS on launch. Please note that general discussions about XE2 are outside the scope of this mailing list, which is only for discussing ICS, and our NDA still prevents most discussion anyhow. XE2 is still a 32-bit Windows application, and all development uses 32-bit Windows packages and design time components, but you can now specify the target platform as being 32-bit or 64-bit Windows, or Mac OS-X. The VCL components support both Windows platforms, and there is a new set of cross platform visual components called FireMonkey that also support Mac OS, and possibly other platforms in the future like Linux. For cross platform development, you run a debugging application Platform Assistant Server on the target platform, that communicates using TCP/IP with the Delphi IDE, so when you click run the executable is automatically copied to the remote platform and run, with full integration with the IDE debugger so you can still set breakpoints, etc. I've got XE2 running in a 32-bit Windows 7 VM (Microsoft Virtual PC on Win7 does not support 64-bit VMs). So when I run my 64-bit application, it appears in the task bar of the 64-bit host instead of the VM window, but it could be another PC, including a Mac. ICS has already been updated to support Delphi XE2 with both Windows 64-bit and 32-bit targets. ICS also supports C++ Builder XE2 but this only targets the Windows 32-bit platform, 64-bit is due next year according to the roadmap. I'm slowly testing my own components (such as TMagRas and IP Helper) for 64-bit compatibility. The main issues are 64-bit assembler is different to 32-bit, so has to be rewritten or replaced by pure Pascal, TPointer and THandle are now 64-bit, so if you've used DWORD for a pointer in the past, it will silently fail. Also the 80-bit extended float has gone, now 64-bit. Many structures with pointers or handles will be longer. Windows APIs that have been converted to Delphi need careful checking to ensure DWORD is not used when a pointer was needed. Any pointer arithmetic must use Sizeof (Pointer) since they may be 4 or 8 bytes depending on target platform. Anything using Windows messages also needs checking, these are 8 bytes so you must use uint, wparam, lparam and lresult, and be very careful about casting these to long integers and such like. I found lots of errors in my RAS API conversions, mainly use of DWORD instead of TPointer or THandle, but you don't get compile errors, calling the APIs just give errors. I'm still having problems with 64-bit record structures, suspect Microsoft has some bugs with 4 or 8 byte alignments in RAS. FireMonkey is a new set of cross platform visual controls with unit names similar to VCL like FMX.Controls, FMX.Forms, FMX.Dialogs, but the component properties are not identical so it is a conversion job, not a recompile and bug fix (which 64-bit mostly is). FireMonkey offers 3D controls, but these don't work in my VM which has simple SVGA. Not sure about third party components and FireMonkey, you can drop Indy components on a form, not sure if they run. ICS does not currently support FireMonkey or Mac OS-X, it needs a lot of work since Linux is not event driven like Windows, and makes use of threads to prevent blocking. ICS did support Kylix for Linux several years ago, so some work has been done. Angus -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be