Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто разбираеться в DLL [D7, WinXP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо