Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

что за ошибка?   Найти похожие ветки 

 
dim-   (2002-08-20 14:55) [0]

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


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

initialization
CoInitialize(nil);

finalization
CoUnInitialize;


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

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


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

unit Unit1;

uses ..., ActiveX;

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

....

implementation

...

initialization
CoInitialize(nil);

finalization
CoUnInitialize;

end.


 
Digitman   (2002-08-20 15:20) [4]

>dim-

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


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

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


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

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


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

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


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

Из Delphi Help-a:
The CoInitialize function initializes the Component Object Model(COM) library. You must initialize the library before you can call its functions. Applications must call CoInitialize before they make any other COM library calls with two exceptions: the CoGetMalloc function, and memory allocation calls.
You need to call this before you call any of the OLE library functions unless you call the OleInitialize function, which calls CoInitialize internally.
Typically, CoInitialize is 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 CoUninitialize function.


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

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-3472
Tornado
2002-08-21 07:57
2002.09.02
ListBox


1-3397
Grande
2002-08-22 15:00
2002.09.02
Вопрос по ассемблеру


4-3668
nester
2002-07-01 19:24
2002.09.02
Как вернуть ответ на SendMessage.


4-3686
DeepProg
2002-07-01 19:16
2002.09.02
Навести курсор на кнопку окна


8-3533
Сергей Чурсин
2002-04-15 16:50
2002.09.02
Несколько DirectDraw в одном приложении ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский