Delphi 生成唯一的DWord常量,不与任何TObject地址并发
我在D7中使用Python4Delphi。我想把对象地址作为“句柄”传递给Py部件。例如Delphi 生成唯一的DWord常量,不与任何TObject地址并发,delphi,Delphi,我在D7中使用Python4Delphi。我想把对象地址作为“句柄”传递给Py部件。例如 h:=整数(指针(1))。我还希望有特殊的句柄值,这意味着一些特殊的对象,例如,-1表示“当前备忘录”,“-2表示“下一个备忘录” 我怎样才能选择这样几个(我需要5个)常量,它们不会与对象地址冲突? 例如 -1-它可以是某个TMemo(其他对象)的地址吗 -2-它可能是某个TMemo的地址吗 我还可以获取哪些不能作为TMemo地址的常量 当然,在Windows上,您可以使用低位地址来实现此目的。你需要五个
h:=整数(指针(1))代码>。我还希望有特殊的句柄值,这意味着一些特殊的对象,例如,-1
表示“当前备忘录”,“-2
表示“下一个备忘录”
我怎样才能选择这样几个(我需要5个)常量,它们不会与对象地址冲突?
例如
-1
-它可以是某个TMemo(其他对象)的地址吗
-2
-它可能是某个TMemo的地址吗
- 我还可以获取哪些不能作为TMemo地址的常量
当然,在Windows上,您可以使用低位地址来实现此目的。你需要五个哨兵值?使用1到5。这些值在用户空间中永远不是有效地址
当然,如果您准备在运行时分配这些值,您可以通过调用
GetMem
为自己保留一些地址。同样,您需要五个地址,调用GetMem(5)
就完成了 当然,在Windows上,您可以为此使用低地址。你需要五个哨兵值?使用1到5。这些值在用户空间中永远不是有效地址
当然,如果您准备在运行时分配这些值,您可以通过调用GetMem
为自己保留一些地址。同样,您需要五个地址,调用GetMem(5)
就完成了 Thakx再次寻求帮助,DavidThakx再次寻求帮助,DavidIn Win32,前64KB地址空间永久无效。这是一条路要走。此外,我还想指出:如果应用程序没有启用大地址感知功能,负数可以作为哨兵使用。然而,我强烈反对这种方法,因为它有效地阻止了您使用该选项。在Win32中,地址空间的前64KB永久无效。这是一条路要走。此外,我还想指出:如果应用程序没有启用大地址感知功能,负数可以作为哨兵使用。然而,我强烈反对这种方法,因为它有效地阻止了您使用该选项。