OberonCore
https://forum.oberoncore.ru/

Как обращаться к Api функциям, отсутствующим в мод.WinApi?
https://forum.oberoncore.ru/viewtopic.php?f=23&t=6992
Страница 1 из 1

Автор:  Александр К [ Понедельник, 30 Сентябрь, 2024 05:50 ]
Заголовок сообщения:  Как обращаться к Api функциям, отсутствующим в мод.WinApi?

Доброго времени суток. Подскажите, как обращаться к функциям WinApi, отсутствующим в одноимённом модуле?

Автор:  Alexander Shiryaev [ Понедельник, 30 Сентябрь, 2024 06:24 ]
Заголовок сообщения:  Re: Как обращаться к Api функциям, отсутствующим в мод.WinAp

Создать отдельный модуль с определениями недостающих функций или добавить их в существующий (и внести вклад в другие проекты).

Автор:  arisu [ Понедельник, 30 Сентябрь, 2024 07:39 ]
Заголовок сообщения:  Re: Как обращаться к Api функциям, отсутствующим в мод.WinAp

всегда, кстати, бесило, что импорт нельзя делать по месту. и что в модули импорта so/dll оберон код-то добавить можно через хак, но бессмысленно. одна из тех мелочей, которые совсем не смертельны, но очень раздражают.

Автор:  Иван Денисов [ Понедельник, 30 Сентябрь, 2024 12:49 ]
Заголовок сообщения:  Re: Как обращаться к Api функциям, отсутствующим в мод.WinAp

Александр К писал(а):
Доброго времени суток. Подскажите, как обращаться к функциям WinApi, отсутствующим в одноимённом модуле?

Да, смело делаете свой модуль WinApiExt с всеми недостающими вам функциями и используете.

Автор:  Александр К [ Вторник, 01 Октябрь, 2024 04:54 ]
Заголовок сообщения:  Re: Как обращаться к Api функциям, отсутствующим в мод.WinAp

Иван Денисов писал(а):
Да, смело делаете свой модуль WinApiExt с всеми недостающими вам функциями и используете.

Я никогда раньше такого не делал. Подскажите, где об этом можно почитать? Дайте ссылки или хотя-бы как это называется, чтобы самому найти.

Автор:  arisu [ Вторник, 01 Октябрь, 2024 05:03 ]
Заголовок сообщения:  Re: Как обращаться к Api функциям, отсутствующим в мод.WinAp

собственно, открываем тот же винапи — и там всё видим.
Код:
MODULE HostWinApi ["KERNEL32.dll"];

IMPORT SYSTEM;



PROCEDURE QueryDosDevice* ["QueryDosDeviceA"] (lpDeviceName: PtrSTR; lpTargetPath: PtrSTR; ucchMax: INTEGER): INTEGER;

END HostWinApi.

всё довольно прозрачно: константы, типы — как обычно (разве что записи должны быть `[untagged]`). в кавычках — имя из dll. ничего сложного, почти что механическая трансляция из си.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/