Конференция "Corba" » Загадочный сбой СОМ сервера
 
  • Unknown_user (11.09.10 00:40) [0]
    Знатоки СОМ подскажите. Хочу в СОМ объекте создать другой СОМ объект и вернуть ссылку на его интерфейс. Вот строки из TLB файла.


     IProject = interface(IDispatch)
       ['{E7C1A356-9E13-4535-9688-6E8967841102}']
       ....
       function AddNewMap: IMap; safecall;



    Вызов метода AddNewMap вызывает сбой где-то в библиотеке RPC (COM объект выполняется в отдельном процессе). Замена safecall на stdcall тоже ничего не дает. Зато отлично работает следующий подход: AddNewMap объявить как read-only свойство и СОМ объект создавать в методе Get_AddNewMap.


       property AddNewMap: IMap read Get_AddNewMap;
       function Get_AddNewMap: IMap; safecall;



    В чем загадка?
  • Unknown_user (14.09.10 00:28) [1]
    Решил задачу. Надо в Type Library Editor указывать ** после названия интерфейса. Тогда возвращается ссылка на объект.
 
Конференция "Corba" » Загадочный сбой СОМ сервера
Есть новые Нет новых   [118642   +46][b:0][p:0.001]