如何将TObject类型转换为LongInt?

时间:2015-10-28 14:48:39

标签: object casting overflow long-integer lazarus

好吧,我有一个名为CaLlist的TStringList变量,并在我的代码中使用如下。

CalList.strings[i] := "Something";
CalList.Objects[i] := TObject(22.3);

rawval := PtrInt(CalList.Objects[i]); <<------- Error raised here.

我正在使用FPC 2.6.2 Lazarus 1.0.16。这段代码编译并运行正常但是当我单步执行代码时, rawval 被设置为一些天文数字负数而不是22.3,正如我预期的那样。

那么,我做错了什么?这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:2)

必须将$ printf "%s\n%s\n" "buffer - line 1" "myscript.sh" | ./bin/system_buff_stdin buffer: buffer - line 1 buffer: myscript.sh myscript.sh executed : hello /bin/sh 转换为double(双倍大小= 8字节= x86_64上的寄存器大小)或单个(单个大小= 4个字节= x86上的寄存器大小)。

示例:

.Object[i]