在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近,Delphi推出了64位预览版本, 我做为一个忠实的Delphier, 看到这消息后,第一时间学习,并写下这个做为以后的参考资料。 相同点:在Delphi 64位版本中,UnicodeString,AnsiString,WideString在使用上与32没有区别,只是索引变成了64位,如:S[I]中的I变成了64位。
← 符号表示大小与Delphi/32相同 不同的地方:NativeInt,NativeUint - 64 bits Point(all pointers) - 64 bits Dynamic Arrays - 64-bit indexing Floating point math – Double Point String Class instance class reference Interface AnsiString WideString UnicodeString Procedure pointer Dynamic array PAnsiChar PWideChar PChar 上面的类型在32位都是4 bytes,在64位下是8 bytes 总体来说:
在64位下,这些调用约定将被看做一致:register,passcal, cdecl,stdcall Delphi/64不支持pascal与BASM(ASM)混写了,只支持纯Asm procedure。 调用过程或函数的前面四传参寄存器也发变成了:RCX, RDX, R8, R9(或XMM0-XMM3) 在处理Message消息结构体时,需要进行显示强制转换,例如: SendMessage(hWnd,WM_SETTEXT,0,LPARAM(@MyCharArray)); |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论