I recently reviewed all my projects to be ready to x64 (replaced things like
Integer(Pointer) ) and also checked code of some components I use.
The main idea is not to cast pointers/handles to integer/cardinal as they may
exceed 4 bytes on x64 systems. Emb-ro introduced two new types: Native(U)Int
that will always have the same size as Handle/Pointer. So I believe the changes
could be done right now.
Here's what I found in ICS.
OverbyteIcsUtils.pas
1) if Integer(FHandle) >= 0 then // NativeInt() but not necessary as it's for
old compilers
2) TIcsIntegerList.Get***, all Integer() casts
3) Cardinal(Pointer(Result)^) := Len;
4) if Cardinal(FHandle) = INVALID_HANDLE_VALUE then // (twice) to NativeUInt
OverbyteIcsWndControl.pas
1) KillTimer(FIcsWndControl.Handle, Cardinal(Integer(IntPtr(FHandleGC))));
2) if SetTimer(FIcsWndControl.Handle,
Cardinal(Integer(IntPtr(FHandleGC))), FInterval, nil) = 0
then begin
3) KillTimer(FIcsWndControl.Handle, Cardinal(Self));
4) if SetTimer(FIcsWndControl.Handle,
Cardinal(Self), FInterval, nil) = 0 then begin
There are other some Integer() stuff but inside IFDEF CLR sections and I have
no idea on what things in x64 .Net are (and even if they differ from x32 at
all).
--
Anton
--
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