Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   C++Builder, рпомощь с COM объектом (http://forum.oszone.net/showthread.php?t=220133)

slan046 10-11-2011 14:07 1792253

C++Builder, рпомощь с COM объектом
 
Добрый день. Помогите разобраться как правильно написать COM-объект.
Создаю проект, добавляю в него Automation Object, к созданному интерфейсу цепляю например Method1 c 1-м параметром OUT и со вторым параметром OUT, RETVAL:
Код:

Variant a, b;
STDMETHODIMP TtestOLEImpl::Method1(VARIANT* Param1, VARIANT* Param2)
{
        a = "Текст";
        *Param1 = a;
        b = "Другой текст";
        *Param2 = b;

        return S_OK;
}

Компилю, регистрирую в системе. Затем пишу клиента:
Код:

Variant Obj;
Obj = CreateOleObject("Project1.testOLE");
Variant a, b;
AnsiString _a, _b;
a = Obj.OleFunction("Method1", b);
_a = a.strVal;
_b = b.strVal;

в _a получаю "Текст", а при попытке получить _b получаю вылет из проги.
Под отладчиком смотрю на переменные a и b: в переменной a всё нормально, в переменной b все поля в 0 (отсюда и вылет).
Дайте совет, как вернуть из ком-объекта строковые параметры в методе


Время: 12:51.

Время: 12:51.
© OSzone.net 2001-