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

Вниз

Access Violation в DLL   Найти похожие ветки 

 
Dima(Other)   (2003-10-02 09:43) [0]

Вот кусок DLL-ки. На DM лежит толко ADOConnection, со свойством Connected = FALSE;
Обе експортируемые функции в основной программа подключаются статически.
Запускаем программу, и НЕ ИСПОЛЬЗУЯ функции из DLL закрываем её. Соответсвенно
ADOConnection к базе на подключается. Так вот, на DM.Free происходит Access Violation.
Непонятно почему, ведь с DLL ничего, кроме инициализации не делалось...
Если создание и уничтожение DM запихнуть внутрь каждой функции, то всё нормально...
Объясните, плз, почему это может не работать...

{$R *.RES}
exports
CardDlgCreate,
FullCardViewCreate;

procedure DllEntryPoint(Reason: Integer);
begin
case Reason of
DLL_PROCESS_ATTACH: begin
CoInitialize(nil);
DM := TDM.Create(nil);

end;
DLL_PROCESS_DETACH: begin
DM.Free;
CoUnInitialize;
end;
end;
end;

begin
DllProc := @DllEntryPoint;
DllEntryPoint(DLL_PROCESS_ATTACH);
end.


 
Radionov Alexey   (2003-10-02 09:48) [1]

sheremem используешь?


 
Radionov Alexey   (2003-10-02 09:49) [2]

хотел сказать "sharemem" :)


 
Dima(Other)   (2003-10-02 09:49) [3]

Нет, а зачем он нужен? Строки то не передаются!


 
Radionov Alexey   (2003-10-02 09:57) [4]

Пока у меня одни домыслы...
Попробуй из DllEntryPoint вызывать также старую ее версию. Мало ли... :)))


 
Radionov Alexey   (2003-10-02 10:08) [5]

Кстати, может существенно следущее:
Вот описание DllEntryPoint из Help.

BOOL WINAPI DllEntryPoint(

HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpvReserved // reserved
);

Есть разница. :))


 
Radionov Alexey   (2003-10-02 10:13) [6]

Сорри, все правильно. Это я гоню.

Но без кода вряд ли что-то придумаю.


 
Radionov Alexey   (2003-10-02 10:28) [7]

Все-таки попробуй поставить sharemem. Если ничего не измениться, будем думать :)
Дело в том, что твой пример у меня твой пример тоже не работает, если нет sharemem. А с ним - все ok!



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

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

Наверх




Память: 0.45 MB
Время: 0.009 c
1-40338
ABCMan
2003-09-30 22:12
2003.10.13
Даты


14-40615
Alex Konshin
2003-09-25 06:09
2003.10.13
Чем грабить AudioCD?


14-40573
афвуд
2003-09-23 13:42
2003.10.13
Может кто-нибудь с этим встречался.


1-40476
k_len
2003-10-02 13:56
2003.10.13
Exception EDBEngineError


14-40590
Delirium^.Tremens
2003-09-24 13:50
2003.10.13
Разочарование года





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