Идёт загрузка страницы...

htp://aptem.net.ru
Хотите раскрутить свой сайт в Яндекс и Google?
Недорогое и качественное продвижение сайта от 50$




Delphi 2

Интерфейс OLE AutoServer

Я пытаюсь создать in-process oleserver с возможностью обратного вызова (callback). Я хочу передавать мой ole-объект MS C++ dll так, чтобы DLL могла бы вызываться из сервера. Проблема в том, что dll "вылетает", если мой сервер - Delphi 2.0, но работает в VB 4.0

Проблема в том, что вы передаете со стороны Delphi Variant, но на стороне C++ "ожидают" IUnknown. Измените прототип функции Delphi следующим образом:


   
function SmtOleLink(OleCallBack: IUnknown; ...) ...;

Для получения доступа к типу IUnknown необходимо добавить "Ole2" к списку используемых модулей. Теперь измените вызов со стороны Delphi:


   
SmtOleLink(VarToInterface(MyObject), 16, 0);

Функция "VarToInterface" (определенная в модуле OleAuto) извлекает указатель IDispatch из Variant (или возбуждает исключение, если Variant не содержит ссылки на объект OLE Automation).

Это должно сработать.

- Anders Hejlsberg [000885]




Материалы, которые находятся на этой страничке, любезно предоставлены Игорем Ивановым

РЕКЛАМНЫЙ БЛОК
     © 2007    APTEM.NET.RU    Все права защищены