Здравствуйте, Аноним, Вы писали:
А>P.S. Тестил я тут один COM обьект написанный на Visual Basic, все работает и в Visual Basic и у VBScript, тама метод обьекта был обьявлен так:
А>Sub Method( ByRef outVal as string);
А>И все работает!!!
А у меня так же объявлен метод, но он не работает! Правда вызываю я его из Visual C++ при помощи ATL:
Public Sub calcForecast(ByVal inputXML As String, ByRef outputXML As String)
...
End Sub
Такой вот вызов:
_CalcForecastPtr pCalcForecast;
try
{
hr = pCalcForecast.CreateInstance(CLSID_CalcForecast);
if (FAILED(hr))
{
errName = "8Couldn't create COM object";
return S_OK;
}
}
catch(...)
{
errName = "8Couldn't create GetForecast::calcForecast()";
return S_OK;
}
BSTR outputXML;
try
{
_bstr_t inputXML = "blablabla";
hr = pCalcForecast->CalcForecast(inputXML, &outputXML);
SysFreeString(outputXML);
}
catch(...)
{
SysFreeString(outputXML);
errName = "8Couldn't execute GetForecast::calcForecast()";
return S_OK;
}
При этом вызов вообще не происходит! Валится, даже try...catch не ловит!
Не подскажете, в чем проблема?