Embarcadero recently announced that RAD Studio XE2 will be launched in
the next few weeks, the main XE2 information page is currently:
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
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
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.
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