1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 
4. НЕ используйте форум для личного общения! 
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел! 
| Alesha_GA | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
        	
        		![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 56 Пол: Мужской Репутация:    0           	 | 
       
			
			 Возможно ли в BP 7 использование Dll. Если можно, то как. 
			
			-------------------- Deleting... 
					
		All RESET [Return]  | 
	
![]() ![]()  | 
	
| Alex | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
| 
        	
        		 Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 201 Репутация:    0           	 | 
       
			
			 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 Пол: Мужской Репутация:    3           	 | 
       
			
			 Имя библиотеки должно совпадать с сохраненным файлом! 
			
			
					
		 | 
	
| Alex | 
                        
			
			  
			
				 Сообщение
					#4				
			 
		 | 
	
| 
        	
        		 Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 201 Репутация:    0           	 | 
       
			
			 Использовать процедуру в программе надо так: 
			
			
					
		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 такой функции нет, а я не хотел, чтобы это было летально для всей программы.  | 
	
![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 13:38 |