![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто разбираеться в DLL [D7, WinXP]
Snip © (2004-09-08 15:32:00)Привет всем! Такая проблема, пишу модульное приложение (с использованием DLL), в основном работа связана с базой данных Interbase. Что мне нужно передать в DLL чтобы в ней (DLL) происходила работа с уже открытой базой данных в приложении... Подскажите пожалуйся!!! Заранее спасибо!
Digitman (2004-09-09 12:53:00) [21]на какой конкретно строчке ?
Snip (2004-09-09 12:39:00) [22]Млин, у меня все равно вылетает ошибка при вызове процедуры, вот пример:
procedure AddEmployee(App: TApplication; AIBD: TIBDatabase; AIBT: TIBTransaction; AID: PChar); stdcall;
implementation
{$R *.dfm}
procedure AddEmployee(App: TApplication; AIBD: TIBDatabase; AIBT: TIBTransaction; AID: PChar);
var
TempApp: TApplication;
fEditUsers: TfEditUsers;
begin
TempApp:=Application;
Application:=App;
fEditUsers.IBD.Assign(AIBD);
fEditUsers.IBT.Assign(AIBT);
fEditUsers.ID:=AID;
fEditUsers:=TfEditUsers.Create(Application, True);
fEditUsers.ShowModal;
FreeAndNil(fEditUsers);
Application:=TempApp;
end;
в вызывающем модуле:
procedure AddEmployee(App: TApplication; AIBD: TIBDatabase; AIBT: TIBTransaction; AID: PChar); stdcall; external 'dll\employee.dll';
...
procedure TfObjects.actAddEmployeeExecute(Sender: TObject);
begin
AddEmployee(Application, DM.IBDatabase, DM.IBTransaction, PChar(lvObjects.Selected.Caption));
end;
вроде все правильно, но вылетает ошибка, подскажите плз.!!!
Mim1 (2004-09-08 17:30:00) [23]
> собери оба проекта с опцией линкера BwRTP и не парься
:)
Snip (2004-09-08 16:25:00) [24]ок, сенькс, теперь понял!!!
Digitman (2004-09-08 16:14:00) [25]в станд.справке Делфи
Build with Run- Time Packages
Snip (2004-09-08 16:01:00) [26]
> опцией линкера BwRTP
а можно отсюда по подробнее, что это за опция? и где найти ее описание?
Digitman (2004-09-08 15:56:00) [27]собери оба проекта с опцией линкера BwRTP и не парься
Snip (2004-09-08 15:46:00) [28]я так и делал,
procedure AddEmployee(App: TApplication; AIBD: TIBDatabase; AIBT: TIBTransaction; AID: PChar); stdcall;
только при вызове выдает ошибочку...
Access violation at address XXXXX in module YYYYY. Read of address ZZZZZ
Digitman (2004-09-08 15:37:00) [29]
> Что мне нужно передать
ссылку на существующий объект класса TIBDatabase, св-во Active которого = True