Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Ошибка при работе с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
1-1108972230
DimonS
2005-02-21 10:50
2005.03.06
Вопрос по временным промежуткам


3-1107855864
Sava
2005-02-08 12:44
2005.03.06
Хранения изображений в БД


3-1107422213
Term
2005-02-03 12:16
2005.03.06
Безопасность MS SQL


4-1106394485
Islander
2005-01-22 14:48
2005.03.06
Как получить из системы названия кнопок Retry, Ignore, Cancel


3-1107361560
salexn
2005-02-02 19:26
2005.03.06
утилита для работы с MSSQL