热情软件屋

 

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只能用于指针。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio