Olevariant и Dll

Тема в разделе "Delphi - СОМ", создана пользователем Vendigo, 30 дек 2010.

  1. Vendigo

    Vendigo Гость

    Проблема такая
    Есть глобальная переменная Типа OleVariant и функция, инициализирующая эту переменную

    Код (Delphi):
    var PCX:OleVariant;

    function Initialize(Param:Pchar): Pchar;
    begin
    PCX:= CreateOleObject('cft.winpcx.1');
    result:= '';
    end;
    В проекте(WinForm) все работает нормально, но когда компилю dll и вызываю эту функцию программа виснет.
    Если сделать переменную локальной все работает нормально. То есть зависание судя по всему происходит при присвоении глобальной переменной ссылки, возвращаемой CreateOleObject.
    Также пробовал хранить в глобальной переменной ссылка на сам интерфейс Dispatch
    Код (Delphi):
    var PCX:IDispatch;
    ...
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Мало информации...
    Initialize это функция экспротируемая длл-кой? или просто внутри где-то юзается?
    А var PCX вы пытаетесь приложению отдать для работы? или опять же для внутреннего (DLL) использования?
    А кто такой cft.winpcx.1? может ему Окно нужно в качестве парента? для инициализации?
    Или может это модальный объект?
    А DLL у вас динамически грузится?
     
Загрузка...

Поделиться этой страницей