将null参数从VFP传递到.NET Com Class

时间:2012-01-04 13:40:36

标签: c# com null visual-foxpro foxpro

我在.NET中有类,并将此类作为foxpro的COM对象调用。 该类具有可以接受不同类类型作为参数的方法。 如何将NULL传递给.NET类方法?

[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("ParameterClass")]
[ComVisible(true)]
class ParameterClass
{
    public ParameterClass f_ClassMethod_2(ParameterClass _d) 
    {
        Debugger.Launch();
        return _d;
    }
}

在VFP中创建对象:

cls= CREATEOBJECT("ParameterClass ")

此代码返回错误:

obj3 = cls.f_ClassMethod_2(null) 
//Error: OLE error code 0x80070057: The parameter is incorrect.

或此代码:

obj3 = cls.f_ClassMethod_2(.Null.) 
//Error: OLE error code 0x80070057: The parameter is incorrect.

或此代码:

prm = .Null.
obj3 = cls.f_ClassMethod_2(prm) 
//Error: OLE error code 0x80070057: The parameter is incorrect.

1 个答案:

答案 0 :(得分:0)

由于你在它们之间遇到NULL解释问题,我会在你的VB中尝试一个额外的方法,比如..然后直接从内部调用你的方法

  public ParameterClass f_ClassMethodAsNULL() 
    {
        f_ClassMethod_2( null );
        ... etc...
    }

然后,您应该能够从VFP调用函数f_ClassMethodAsNULL()