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

Reply via email to