Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

что за ошибка? [D5, Win95/98]


dim- ©   (2002-08-20 14:55:00) 

Делаю:
var form1:tform1"
..
form1:=tform1.Create(Application);
Пока делаю это как обычный проект то все работает, а как только компелю dll так при вызове dll она выполняется пока не доходит до этой строчки и выскакивает ошибка "Не был произведен вызов Colnitiaze"
В чем ошибка?


dim-   (2002-08-22 10:27:00) [1]

то: NewGuest
Неа, не работает.
Работает только как "Ekaterina" сказала


NewGuest   (2002-08-20 16:30:00) [2]

Сделай TForm1.CreateNew(Application);
Это точно сработает


Ekaterina   (2002-08-20 15:37:00) [3]

Из Delphi Help-a:
The CoInitializefunction initializes the Component Object Model(COM) library. You must initialize the library before you can call its functions. Applications must call CoInitializebefore they make any other COM library calls with two exceptions: the CoGetMallocfunction, and memory allocation calls.
You need to call this before you call any of the OLE library functions unless you call the OleInitializefunction, which calls CoInitializeinternally.
Typically, CoInitializeis called only once in the process that uses the OLE library. There can be multiple calls, but subsequent calls return S_FALSE. To close the library gracefully, each successful call to CoInitialize, including those that return S_FALSE, must be balanced by a corresponding call to the CoUninitializefunction.


dim-   (2002-08-20 15:32:00) [4]

Весь код слишком большой, а где ошибка выдается я написал.
То: Ekaterina спасибо заработало, но что делает это CoInitialize(nil)?


Skier   (2002-08-20 15:29:00) [5]

>dim-
А что если код показать ?


dim-   (2002-08-20 15:27:00) [6]

мне надо в dll вынести форму, а она в свою очередь открывает другую форму. Если делаю Exe то все работает и ошибки нет, а вот Dll... Почему?


Digitman   (2002-08-20 15:20:00) [7]

>dim-

А ты отдаешь себе отчет в том, что твой библиотечный вызов создает визуальный котрол в доп.кодовом потоке ? Подобное исключение явно говорит, что у тебя именно эта ситуация.


Ekaterina   (2002-08-20 15:17:00) [8]

unit Unit1;

uses ..., ActiveX;

type
TForm1 = class(TForm)
....
end;

....

implementation

...

initialization
CoInitialize(nil);

finalization
CoUnInitialize;

end.


dim-   (2002-08-20 15:11:00) [9]

а можно поподробней
если ставлю CoInitialize(nil); то ругается что нет такой.


Ekaterina   (2002-08-20 15:02:00) [10]

initialization
CoInitialize(nil);

finalization
CoUnInitialize;


Наверх

Титульная страница Поиск, карта сайта Написать письмо