Передача нулевого параметра из VFP в .NET Com Class - PullRequest
0 голосов
/ 04 января 2012

У меня есть класс в .NET, и я вызываю этот класс как объект COM из foxpro.Этот класс имеет методы, которые могут принимать различные типы классов в качестве параметра.Как передать 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 голосов
/ 04 января 2012

Поскольку у вас есть проблемы с интерпретацией NULL между ними, я бы попробовал дополнительный метод в вашем VB, такой как .. затем вызвал бы ваш метод непосредственно из себя

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

Тогда вы просто сможете вызвать функцию f_ClassMethodAsNULL () из VFP

...