【问题标题】:What is the equivalent constant for C++ NULL in Delphi?Delphi 中 C++ NULL 的等效常量是什么?
【发布时间】:2018-10-19 08:09:40
【问题描述】:

我需要将我的 C++ 代码迁移到 Delphi。有许多检查来检查给定句柄(HANDLE)在 C++ 代码中是否为NULL。 Delphi中可以使用的等价常数是什么? Delphi 中的null 似乎与C++ 中的NULL 不同。

【问题讨论】:

  • 而不是检查Null 值,您应该抛出trycatch 异常...因为根据 Nullno对你的问题...
  • @Ruks 不这么认为。我只能假设HANDLE 的意思是我们在谈论winapi,它不使用异常来指示错误。

标签: c++ delphi winapi


【解决方案1】:

在 Windows C++ 头文件中,NULL 是一个扩展为 0 的宏。这意味着NULL 可以在数字和指针上下文中使用,因为 C++ 语言支持这种用法。

但是,对于 Delphi,值 0 用于数字上下文,而值 nil 用于指针上下文。

Windows HANDLE 值在 Delphi 中被声明为数字类型,因此您应该在 Delphi 中使用 0 代替 C++ NULL

【讨论】:

  • @George:在窗口标题中,它是 0。
  • @George 对HANDLE 的引用让我相信我们正在谈论Windows 标头中的NULL
  • @Bathsheba David Heffernan 啊,是的,抱歉,周末准备好了 :)。
猜你喜欢
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多