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

Вниз

Не был произведен вызов CoInitialize    Найти похожие ветки 

 
AlexTP   (2004-08-04 14:20) [0]

Помогите решить проблему: на форме лежит ADOConnection, при создании формы в кострукторе ADOCommand после вызова CreateADOObject(CLASS_Command) as _Command; вылетает Exception:
"Не был произведен вызов CoInitialize". Почему ?


 
KSergey ©   (2004-08-04 14:22) [1]

Надо просто не стесняться и вызвать при инициализации CoInitialize


 
alexTP   (2004-08-04 14:52) [2]

При инициализации чего ? ADODB.pas переписать ?


 
KSergey ©   (2004-08-04 15:24) [3]

Переписывать ничего не надо
Достаточно вызвать эту процедуру, увы не помню в каком юните.

Это у вас exe или dll? Обычно с exe таких проблем не возникает, там вызов встроен (Application.Initialize, если не вру), а вот в dll-проект - нет. Не знаю почему.


 
KosilkA ©   (2004-08-04 16:04) [4]

function CoInitialize(pvReserved: Pointer): HResult; stdcall; external "ole32.dll" name "CoInitialize";


 
alexTP   (2004-08-04 16:29) [5]

У меня действительно dll.

Поставил CoInitialize(nil) ADOConnection успокоился.

procedure Ini;
begin
 CoInitialize(nil);
 MainForm:= TMainForm.Create(nil);
end;

Теперь Access violention на MainForm.Free;

procedure Deini;
begin
 MainForm.Free;
 CoUninitialize;
end;


 
alexTP   (2004-08-04 16:30) [6]

Удалено модератором


 
KosilkA ©   (2004-08-04 16:44) [7]

сорри про это забыл
procedure CoUninitialize; stdcall; external "ole32.dll" name "CoUninitialize";


 
KosilkA ©   (2004-08-04 16:46) [8]

а может проще дописать в конец юнита главной формы

initialization
Coinitialize(nil);
finalization
CoUninitialize;
end.

?


 
alexTP   (2004-08-04 16:49) [9]

Нормально, я уже догадался. Теперь проблема: не работает  MainForm.Free; :((


 
alexTP   (2004-08-04 16:54) [10]


> KosilkA ©   (04.08.04 16:46) [8]


Попробовал:

external exception C000001D там же MainForm.Free


 
KosilkA ©   (2004-08-04 17:02) [11]

дай свой код .. штоли ..=)))


 
Anatoly Podgoretsky ©   (2004-08-04 17:09) [12]

alexTP   (04.08.04 16:29) [5]
Теперь ошибка в другом месте не связаная с Coinitialize, так как MainForm глобальная переменная, то таких мест может быть много.


 
KosilkA ©   (2004-08-04 17:14) [13]


> alexTP   (04.08.04 16:29) [5]
> У меня действительно dll.
>
> Поставил CoInitialize(nil) ADOConnection успокоился.
>
> procedure Ini;
> begin
>  CoInitialize(nil);
>  MainForm:= TMainForm.Create(nil);
> end;
>
> Теперь Access violention на MainForm.Free;
>
> procedure Deini;
> begin
>  MainForm.Free;
>  CoUninitialize;
> end;

попробуй назначать имя новой форме и в вызове функции Deini прописать это имя


 
alexTP   (2004-08-04 17:34) [14]


> Anatoly Podgoretsky ©   (04.08.04 17:09) [12]


> так как MainForm глобальная переменная, то таких мест может
> быть много.

Воистину глобальная. Всем спасибо.



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

Форум: "WinAPI";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1094105792
velial
2004-09-02 10:16
2004.09.19
Хороший тон программирования в Делфи


4-1091693971
CHEK
2004-08-05 12:19
2004.09.19
перехват функции getdrivetypea


1-1094547953
Иван_1
2004-09-07 13:05
2004.09.19
Чтение Word овского файла (версии Word от 97 и выше)


4-1092036738
}|{yk
2004-08-09 11:32
2004.09.19
Как бы попроще получить иконку приложения?


14-1093689127
Piter
2004-08-28 14:32
2004.09.19
Ошибка в скрипте для клиентов форума





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский