我有一个存在于 GAC 中的 .NET 程序集。它已正确注册,以便 COM 组件可以调用它。此 .NET 程序集包含一个方法和该方法的重载:
public void Foo(string sValString, out string sOutString, string sOverloadString)
{
if( sOverloadString == string.Empty )
// do something
else
// do something else
}
public void Foo(string sValString, out string sOutString)
{
Foo(sValString, out sOutString, string.Empty);
}
现在,我可以使用 FoxPro 来调用这个程序集:
o = CREATEOBJECT("FooNamespace.FooClass")
sValString = "blah"
sOutString = "blahblah"
o.Foo(sValString, @sOutString, "") *OK!
o.Foo(sValString, @sOutString) *Generates error
调用三参数版本正常,但是当 COM 组件调用二参数版本时,会出现以下错误:
OLE error code 0x80070057: The parameter is incorrect.
有任何想法吗??谢谢!