Delphi中C ++ NULL的等效常数是多少?

时间:2018-10-19 08:09:40

标签: c++ delphi winapi

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

1 个答案:

答案 0 :(得分:9)

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

但是,对于Delphi,在数字上下文中使用值nil,在指针上下文中使用值HANDLE

Windows NULL值在Delphi中被声明为数字类型,因此,在C ++ 0中,您应该在Delphi中使用extern crate futures; extern crate tokio_io; // 0.1.8 // 0.1.24 use futures::future::Future; use std::io::Cursor; use tokio_io::io::{read_exact, read_until}; fn main() { let cursor = Cursor::new(b"abcdef\ngh"); let mut buf = vec![0u8; 2]; println!( "{:?}", String::from_utf8_lossy( read_until(cursor, b'\n', vec![]) .and_then(|r| read_exact(r.0, &mut buf)) .wait() .unwrap() .1 ) ); }