C语言的NULL对应Delphi的什么
编号:QA001398
建立日期: 1999年7月25日 最后修改日期:1999年7月25日
所属类别:
chery:
Delphi
Windows98
在Delphi下调用createfile出错:
语句为:
hCommDev := CreateFile('COM1', GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
错误信息为:
不一致的类型:'variant' and 'psecurityattributes'
将第一个NULL改为nil后编译可通过,但运行时出错,将两个NULL都改为nil则编译出错。 请指点以上语句的错误及解决方法。
回答:
第一个NULL改为nil,第二个改为0。即:
hCommDev := CreateFile('COM1', GENERIC_READ, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
理由是CreateFile的第4个参数为指针,所以此时NULL对应nil。最后一个参数是一个整数,此时NULL对应0。在C/C++中,NULL同任何类型匹配,而在Delphi中,nil只能用于指针。
此问题由李海回答。
| |
|
|
| |
|
|