Delphi 64与32位的差异
来源:互联网 发布:intel显卡驱动linux 编辑:程序博客网 时间:2024/06/05 18:27
http://www.cnblogs.com/neugls/archive/2011/04/05/2005736.html
相同点:
在Delphi 64位版本中,UnicodeString,AnsiString,WideString在使用上与32没有区别,只是索引变成了64位,如:S[I]中的I变成了64位。
Singed types
Delphi/32
Delphi/64
ShortInt
1 bytes
←
SmallInt
2 bytes
←
LongInt
4 bytes
←
Integer
4 bytes
←
Int64
8 bytes
←
Unsinged types
Delphi/32
Delphi/64
Byte
1 bytes
←
Word
2 bytes
←
LongWord
4 bytes
←
Cardianl
4 bytes
←
UInt64
8 bytes
←
← 符号表示大小与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
总体来说:
- 同样的Windows API,如:CreateWindowEx,PeekMessage,etc
- 同样的Delphi RTL:SysUtils,Classes,Generics.Collections,etc
- VCL也相同:Forms,Graphics,Controls,Menus,etc
- 错误处理上也相同:try…finally…., try….exception…..
在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));
Message.Result:=LRESULT(Self);
- Delphi 64与32位的差异
- Delphi 64与32位的差异
- WINDOWS_32位与64位系统的编程差异
- 64位与32位处理器编程的差异和需要注意的问题
- 32位机上与64位机 基本类型的长度差异
- 24位 位图与32位 位图差异解析
- 32位平台和64位平台C代码的一个小差异
- C# 32位/64位程序读写注册表之差异
- Windows7 64位和32位有何差异
- 电脑的32位与64位
- 32位与64位的区别
- DLL的64位与32位
- 32位与64位的区别
- C/C++ 32位机器和64位机器 差异问题总结 跨平台 移植问题 语言编程需要注意的64位和32机器的区别
- delphi判断windows系统是64位还是32位
- 16位机和32位机器的另一中差异,-取模运算,
- 32位与64位
- C# 32位/64位系统下程序读写注册表之差异
- c++多线程例(事件同步对象,变量共享)
- DDoS
- Delphi编译器版本号
- Java笔记5 IO<4>对象的序列化、管道流
- js 生成日历控件
- Delphi 64与32位的差异
- killall
- HTML5 移动Web界面样式 CSS3 - 5
- Java笔记6 网络编程<1>Socket、UDP
- 排名 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss
- uchar 与uchar code的区别!
- DELPHI第三方控件及组件大全(安装方法与使用)
- 单例基础的测试
- java线程sleep方法