关于64位程序的开发有关问题

关于64位程序的开发问题
大家好,不知道大家有没有遇到这种开发需求,目前很多客户服务都转成64位,这样以来,很多以前开发的程序没法用了,如果想把之前的32为程序转成64位有什么好的办法?求教了!

------解决方案--------------------
32位程序仅仅稍稍修改就可以编译出64位程序.而且DCC64是32位程序.也是就是可以再32位的Windows上编译.但必须在64位的计算机上执行编译出来的程序.
------解决方案--------------------
所有指针为64位,其他类型不变,Byte,ShortInt,Word,SmallInt,DWORD,Integer/LongInt,
Int64,UInt64还是以前的,没区别,
尤其注意的是强转的时候,
比如我们通常这么写

var
P : Pointer/PAnsiChar/其他指针
P := Ptr(integer(P) + SizeOf(xxx));
或者用的多的
SendMessage(.. integer(aString)..);
这种也是一样的问题.

由于P是64位的了,而integer(P)强转类型后,指针变成32位了,丢弃了高位,指针肯定不正确了,
64位后,应该是
P := Ptr(int64(P) + SizeOf(xxx));


所以编译前,把类型强转的提示打开,再进行编译,检查所有提示的地方,看是否有指针强转时丢失高位的情况,

结构定义中,如果包含了指针,那结构的大小将变大,这个得足够重视

主要是指针的问题