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

Вниз

Ошибка при работе с DLL   Найти похожие ветки 

 
Denis ©   (2005-02-16 12:11) [0]

Приветствую.
Такая проблема. Есть DLL одна из функций которой создает и открывает форму. В момент открытия и закрытия формы, во время работы с ней вызывающее приложение не проявляет никаких эмоций. А в момент закрытия самого вызывающего приложения все валится с ошибкой "...Память не может быть read." Если же не обращаться к данной функции - все нормально.
Вызываемая форма работает с MSSQL через ADO.
Подскажите, в какую сторону смотреть? Если нужен код - приведу.


 
clickmaker ©   (2005-02-16 12:17) [1]

что делает функция? приведи описание


 
Digitman ©   (2005-02-16 12:20) [2]


> в какую сторону смотреть?


в сторону ошибок в твоем коде


 
Denis ©   (2005-02-16 12:30) [3]

функция запускает следующую процедуру:
procedure showOrganization; stdcall; export;
begin
 Connect;
 FormOrgan:=TFormOrgan.Create(nil);
 FormOrgan.ShowModal;
 FormOrgan.Free;
 Disconnect;
end;

где

Procedure Connect;
begin
 Connection:=TAdoConnection.Create(nil);
 Connection.ConnectionString:=SUConStr;
 Connection.LoginPrompt:=false;
 Connection.CursorLocation:=clUseServer;
 Connection.DefaultDatabase:=DefaultBase;
 Connection.Open;
end;

Procedure Disconnect;
begin
 Connection.Close;
 Connection.Free;
end;


 
Denis ©   (2005-02-16 12:31) [4]

функция запускает следующую процедуру:
procedure showOrganization; stdcall; export;
begin
 Connect;
 FormOrgan:=TFormOrgan.Create(nil);
 FormOrgan.ShowModal;
 FormOrgan.Free;
 Disconnect;
end;

где

Procedure Connect;
begin
 Connection:=TAdoConnection.Create(nil);
 Connection.ConnectionString:=SUConStr;
 Connection.LoginPrompt:=false;
 Connection.CursorLocation:=clUseServer;
 Connection.DefaultDatabase:=DefaultBase;
 Connection.Open;
end;

Procedure Disconnect;
begin
 Connection.Close;
 Connection.Free;
end;


 
Digitman ©   (2005-02-16 12:38) [5]


> одна из функций которой ..
> функция запускает следующую процедуру


а где собственно функция-то ? экспортируемая ?

как грузишь ДЛЛ - статически или динамически ?
показывай как ты обращаешься к ДЛЛ в хост-приложении ..


 
Denis ©   (2005-02-16 13:18) [6]

гружу статически.
есть dcu-файл, который я прописываю в uses. он содержит прототипы функций. та, о которй говорим состоит из одной строки и вызывает упомянутую процедуру. Не спрашивайте почему - не я это писал, но мне приходится с этим разбираться...

кстати, заметил, что на моей машине, где изначально разрабатывалось хост-приложение, ошибок нет.
на той, где разрабатывалась dll и, похоже, на остальных в отделе - эта ошибка. :-\


 
Digitman ©   (2005-02-16 13:27) [7]

покажи прототип


 
Denis ©   (2005-02-16 13:37) [8]

нашел. эта процедура таки напрямую вызывается, а не из функции. извиняюсь, перепутал. :(

это из модуля, где собраны все прототипы:
procedure showOrganization; stdcall; External SuSystem;
SUSystem  - строковая константа.


 
Digitman ©   (2005-02-16 13:41) [9]

а что в форме творится ?

на какой модуль, который якобы вызвал такую ошибку, ссылается программа при выводе сообщения об ошибке ?


 
Denis ©   (2005-02-16 13:56) [10]

форма - справочник организаций.
используется многими модулями системы, потому в длл.
при открытии все ADOquery, ADOcommand подключаются к созданному Connection.
Пользователь работает с базой, все обычно - поиск, добавление, удаление, редактирование. При закрытии все указанные объекты отсоединяются от Connection, который затем уничтожается.
Ни какой модуль конкретно не называет. Говорит, мол, проект Admin.exe raised ... Access violation ...


 
Denis ©   (2005-02-16 14:19) [11]

Так. По всей видимости, толку от нашего диалога не будет... Потому как тут наверное прийдется выкладывать код как длл, так и хост приложения, чтобы разобраться где кто порылся...
Наверное покопаюсь я и вернусь позже с более конкретными вопросами. Хотя и сейчас от совета не отказался бы...



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

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

Наверх





Память: 0.47 MB
Время: 0.036 c
14-1108417189
Луарвик
2005-02-15 00:39
2005.03.06
И все-таки: БД MySQL


3-1107506997
Yasik
2005-02-04 11:49
2005.03.06
Двойной вопрос


4-1106114857
CHES
2005-01-19 09:07
2005.03.06
Чтение com - порта и синхронизация потоков


1-1109007955
Коля
2005-02-21 20:45
2005.03.06
чем отличается Delphi Enterprise


1-1108823266
Коля
2005-02-19 17:27
2005.03.06
есть StringGrid. как выделить текст в одной из ячеек програмно?





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