Delphi 生成唯一的DWord常量,不与任何TObject地址并发

Delphi 生成唯一的DWord常量,不与任何TObject地址并发,delphi,Delphi,我在D7中使用Python4Delphi。我想把对象地址作为“句柄”传递给Py部件。例如 h:=整数(指针(1))。我还希望有特殊的句柄值,这意味着一些特殊的对象,例如,-1表示“当前备忘录”,“-2表示“下一个备忘录” 我怎样才能选择这样几个(我需要5个)常量,它们不会与对象地址冲突? 例如 -1-它可以是某个TMemo(其他对象)的地址吗 -2-它可能是某个TMemo的地址吗 我还可以获取哪些不能作为TMemo地址的常量 当然,在Windows上,您可以使用低位地址来实现此目的。你需要五个

我在D7中使用Python4Delphi。我想把对象地址作为“句柄”传递给Py部件。例如
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永久无效。这是一条路要走。此外,我还想指出:如果应用程序没有启用大地址感知功能,负数可以作为哨兵使用。然而,我强烈反对这种方法,因为它有效地阻止了您使用该选项。