Olevariant и Dll

  • Автор темы Vendigo
  • Дата начала
V

Vendigo

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

Код:
var PCX:OleVariant;

function Initialize(Param:Pchar): Pchar;
begin
PCX:= CreateOleObject('cft.winpcx.1');
result:= '';
end;

В проекте(WinForm) все работает нормально, но когда компилю dll и вызываю эту функцию программа виснет.
Если сделать переменную локальной все работает нормально. То есть зависание судя по всему происходит при присвоении глобальной переменной ссылки, возвращаемой CreateOleObject.
Также пробовал хранить в глобальной переменной ссылка на сам интерфейс Dispatch
Код:
var PCX:IDispatch;
...
 
S

sinkopa

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

Код:
var PCX:OleVariant;

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!