У меня есть сборка .NET, которая живет в GAC. Он зарегистрирован правильно, так что он может быть вызван компонентами 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.
Есть идеи? Спасибо!