Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 18.08.2015
Сообщений: 59

Выяснить, откуда Pascal подключает библиотеки dll

19.08.2015, 12:41. Показов 2404. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сообственно сабж в том, что через модуль Dos и другие я пытаюсь выяснить, откуда Паскаль подключает библиотеки dll. В нем есть раздел, допустим, даты/времени:

Pascal
1
2
3
4
...
implementation
{$L TIME.OBJ}           { Date and time routines }
...
Дальше процедуры:
Pascal
1
2
3
4
5
6
7
8
9
...
procedure GetDate(var Year,Month,Day,DayOfWeek: Word); external {TIME};
 
procedure SetDate(Year,Month,Day: Word); external {TIME};
 
procedure GetTime(var Hour,Minute,Second,Sec100: Word); external {TIME};
 
procedure SetTime(Hour,Minute,Second,Sec100: Word); external {TIME};
...
где на external заканчивается находжением файла библиотеки. Странно что в нем даже путь не указан. Я пытался покопаться в папках PascalABC.NET, FreePascal и TurboPascal, но там так и ничего не нашел...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2015, 12:41
Ответы с готовыми решениями:

Откуда include подключает модули?
Подскажите откуда такая конструкция подключает модули? Из какой папки точно? $sidebar2 = 'sidebar-2'; <jdoc:include...

Microsoft Visual Studio 2005 не подключает стандартные библиотеки
вот двумя способами пробывал, подключить библиотеки : 1) Код C++ 1 #include <iostream.h> 2) Код C++ 1 #include...

Кто подключает и какие библиотеки при включении в проект заголовочного файла Windows.h к примеру?
В заголовочных файлах ведь только описания, константы, макросы, а откуда тогда берется сам код описанных в Windows.h ф-ий? Это...

9
23 / 23 / 7
Регистрация: 03.11.2014
Сообщений: 325
19.08.2015, 15:49
мб потому, что это стандартная библиотека?))
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
19.08.2015, 16:16
В ТР модуль Dos компилируется в библиотеку TURBO.TPL вместе с SYSTEM и ещё насколькими модулями.
В пакете ТР7.1 есть исходник WINDOS.PAS.
0
1 / 1 / 1
Регистрация: 18.08.2015
Сообщений: 59
19.08.2015, 16:39  [ТС]
Nekromail2011
Всмысле стандартная?

Когда я написал прогу, кидаю ее и модуль Dos (из ТурбоПаскаля) в одну папку. Компилирую abc.net'ом, но там заругалось на отсутствие dll или чего там, мол, "подпрограмма должна иметь атрибут DllImport". А в FreePascal все проходит успешно. В чем подвох?

Добавлено через 21 минуту
Nekromail2011
Почему библиотеки dll нигде не найти? Или это "раздел для секретных информаций АНБ" ?.

Constantin Cat
Windos.pas заглядывал. Там то же самое, что и в Dos.pas.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
19.08.2015, 17:45
KimRomik,
в приведенном вами фрагменте приведены объявления внешних процедур. Их реализация (бинарная) находится в объектном файле TIME.OBJ, который связывается с основным кодом директивой {$L TIME.OBJ}.
0
1 / 1 / 1
Регистрация: 18.08.2015
Сообщений: 59
19.08.2015, 19:28  [ТС]
bormant,
И где находится этот файл TIME.OBJ?

Добавлено через 11 минут
А что насчет OBJECTS.TPU в папке Units (TP)?

Кстати, я забыл упомянуть, что в FreePascal нет модулей в *.pas, поэтому там хорошо компилируется, а в остальных (ТР, АВС.NET) надо модули создавать рядом (в одной папке). Но если в последних все равно сделать так, то там не сработает компиляция, потому что опять требует те же dll. Так происходит при внесении в строки операторов процедур из модулей.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8660 / 4495 / 1669
Регистрация: 01.02.2015
Сообщений: 13,908
Записей в блоге: 12
19.08.2015, 20:56
Цитата Сообщение от KimRomik Посмотреть сообщение
Кстати, я забыл упомянуть, что в FreePascal нет модулей в *.pas, поэтому там хорошо компилируется, а в остальных (ТР, АВС.NET) надо модули создавать рядом (в одной папке).
Да ладно?!
При работе с ТР я настраивал директории в которых находятся
- tpu (которые уже готовые или их исходники pas)
- obj
- inc
выходные файлы
- tpu & exe
Настраивал как в IDE, так и для компилятора командной строки (файл tpc.cfg).
---------------------------------------------------------------------------
Но это лирика.
Прими для себя, что системные файлы - те, которые поставляются вместе с компилятором (например DOS, Strings, Object и прочие) по разным причинам компилируются только "родным" компилятором. Т.е. пакет из ТР не будет компилироваться в FPC, PABC, а если и откомпилируется, не факт, что будет работать. Это в большей степени касается модулей для взаимодействия с ОС и "железом". Простые программы, использующие одноименные модули от соответствующих компиляторов прекрасно перенесутся.

В общем - не занимайся ерундой - не перекомпилируй стандартные модули, особенно без нужды.
0
1 / 1 / 1
Регистрация: 18.08.2015
Сообщений: 59
19.08.2015, 21:29  [ТС]
ФедосеевПавел,
Блин! Уважаемый, я это знаю. Просто у меня лично всегда трудности с формулировкой вопросов

Ладно, проехали и давай перейдем на суть вопроса. Однажды мне потребовалось добавить в Паскаль дату и время через GetTime и GetDate. Это работает только в FreePascal и TurboPascal, а мне нужно, чтобы это сработало и в PascalABC.NET.

Уже ясно?

Добавлено через 14 минут
Если что, ради того я готов даже библиотеку написать.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
20.08.2015, 10:17
Цитата Сообщение от KimRomik Посмотреть сообщение
где находится этот файл TIME.OBJ?
Компилятор ищет подключенные директивой $L файлы сначала в текущем каталоге, затем в каталогах, указанных в настройках или параметрах командной строки.
В TP это параметр -O (Object directories, Каталоги объектных файлов).
В комплекте Borland Pascal распространялись исходные тексты RTL, в том числе и модуля DOS. Файл TIME.OBJ получался компиляцией исходника TIME.ASM. Реализации указанных 4-х функций фактически являются простыми вызовами функций операционной системы (MS-DOS):
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    PUBLIC  GetDate
 
GetDate     PROC    FAR
 
YearP       EQU (DWORD PTR [BP+18])
MonthP      EQU (DWORD PTR [BP+14])
DayP        EQU (DWORD PTR [BP+10])
DayOfWeekP  EQU (DWORD PTR [BP+6])
 
    PUSH    BP
    MOV BP,SP
    MOV AH,2AH
    INT 21H
    XOR AH,AH
    LES DI,DayOfWeekP
    STOSW
    MOV AL,DL
    LES DI,DayP
    STOSW
    MOV AL,DH
    LES DI,MonthP
    STOSW
    XCHG    AX,CX
    LES DI,YearP
    STOSW
    POP BP
    RET 16
 
GetDate     ENDP
и т.п.

Очевидно, что ассемблерный код 16-разрядного реального режима процессора 8086 не совсем то, что требуется для PascalABC.NET. Полагаю вопрос про возможности RTL этого языка будет уместно задать в соответствующем разделе.

Однако имейте в виду, что системные дата/время являются критичными данными ОС, и без прав администратора в любой современной системе вам их поменять не дадут.
0
 Аватар для Игорь2001
20 / 20 / 10
Регистрация: 19.05.2015
Сообщений: 704
20.08.2015, 19:15
в паскаль АВС нет есть свои трюки для работы с временем и датой. См примеры, нет-библиотеки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2015, 19:15
Помогаю со студенческими работами здесь

Создание dll библиотеки в C#. Вызов классов этой библиотеки
мне нужно как то создать динамическую библиотеку класов в си шарп, основой этой библиотеки должен быть абстрактный класс, от которого будут...

Как использовать методы библиотеки DLL, и игнорировать их, когда DLL нету?
Как использовать методы библиотеки DLL , и игнорировать их когда DLL нету Что нужно , мне нужно так чтоб проверялось наличие библиотеки ...

Где взять библиотеки JSCore.dll и WebKitCore.dll
Доброго времени суток. Скачал ExpressoBrowser-master, пытаюсь запустить через SharpDevelop 4.4, выскакивает ошибка, дескать нет JSCore.dll...

Как в отладке выяснить, откуда был вызван метод
Ребят как узнать откуда был вызван метод? К примеру ставлю точку останова на метод onCreate во фрагменте и вижу что он вызывается 2 раза...

Слетели библиотеки .dll При запуске любых приложений на компьютере вылетает ошибка с расширением .dll
Не запускается приложения на windows 8. А также удалились точки доступа Восстановления Системы и компьютер глючит в последнее время. Что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru