![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Alesha_GA |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 56 Пол: Мужской Репутация: ![]() ![]() ![]() |
Возможно ли в BP 7 использование Dll. Если можно, то как.
-------------------- Deleting...
All RESET [Return] |
Alex |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 201 Репутация: ![]() ![]() ![]() |
library name;
uses ....; {описание процедур; типы даных, константы и т.д. писать для послед исп. в проге нельзя} procedure name1; begin end; ... procedure namen; begin end; exports name1 index1; name3 index3; {пишешь названия процедур, которые будешь исп в прогах} ..... namen index n; begin {раздел инициализации отсутствует} end. (при работе protect режим Dos и режим Windows} Использовать можно только в копилерах Bp.EXE, BPC.exe, BPW.EXE. Borland Pascal with objects, позваляет писать собств Dll |
AlaRic |
![]()
Сообщение
#3
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Имя библиотеки должно совпадать с сохраненным файлом!
|
Alex |
![]()
Сообщение
#4
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 201 Репутация: ![]() ![]() ![]() |
Использовать процедуру в программе надо так:
procedure name(...);external 'Mylib'; |
BlackShadow |
![]()
Сообщение
#5
|
Гость ![]() |
Можно воспользоваться и другим способом :
Var hLib:Integer; Proc:Function(Param1,Param2:Integer;Param3:Pointer):Boolean; {Например} Begin hLib:=LoadLibrary('My.Dll'); If hLib<>0 Then Begin @Proc:=GetProcAddress(hLib,'MyFun'); If @Proc<>Nil Then Proc(1,2,Nil); {Тоже например} End End. Этим методом я воспользовался, когда вызывал RegisterServiceProcess из Kernel32. Проблема в том, что в NT такой функции нет, а я не хотел, чтобы это было летально для всей программы. |
![]() ![]() |
![]() |
Текстовая версия | 17.06.2025 17:20 |