Re[7]: Как задать тип для out-параметра?
От: Balu  
Дата: 29.01.03 15:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>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 не ловит!

Не подскажете, в чем проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.