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