|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.06.2018, 16:28 | #21 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Давайте смотреть в корень. Что такое WinAPI по сути своей? Это набор функций, экспортируемых из системных DLL. Значит, чтобы работать с WinAPI, Ваш язык должен уметь
1) Загрузить в память DLL и получить из неё адрес функции 2) Вызвать эту функцию с соблюдением конвенций вызова 3) Произвести преобразование типов при необходимости Третий пункт обычно выливается в необходимость работы со структурами и указателями. Если язык не поддерживает часть перечисленного напрямую, выход иногда всё же можно найти. Он состоит в написании прослойки между языком и WinAPI, чаще всего таки на C |
06.06.2018, 12:15 | #22 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Бредовый вопрос. Win32 API - набор функций/интерфейсов взаимодействия с операционной системой. Привязан ли к языку программирования? Безусловно. ОС на C/C++ написана, Поставляемые Windows SDK/DDK на C/C++. Чтобы самому транслировать API в какой-то свой язык программирования, нужно минимально знать C/C++, иначе появляются темы "Как это использовать X в паскале, C# и т.д." потому что из коробки некая новомодная функция из SDK/DDK не описана в библиотеках того же Delphi/C# и проч. Благо MSDN обновили, описание и даже примеры использования можно посмотреть на С++, C# иногда даже VB.Net.
Если у Вас не возникает проблем с самостоятельным описанием C++ функций/интерфейсов и структур в том же Delphi, то для Вас лично Win32 API уже ни к чему не привязан, потому что Вы сами в состоянии перенести описание функции в другой ЯП. Что касается примеров кода на языках программирования, то мне тоже не понятно ваше негодование. Языки высокого уровня ничем особо не отличаются друг от друга. Мне вот без разницы, какой пример кода я читаю, C#, C++ или Delphi, общий смысл переданный автором кода мне понятен. Куском кода можно ответить на вопросы о которых Вы даже ещё и не думали, а за Вас их уже решили, вместо того, чтобы разводить дискуссии текстовые на десятки страниц. Последний раз редактировалось Человек_Борща; 06.06.2018 в 12:28. |
20.04.2019, 13:35 | #23 | |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Цитата:
Код:
Последний раз редактировалось taras-proger77; 20.04.2019 в 13:40. |
|
20.04.2019, 19:24 | #24 |
Участник клуба
Регистрация: 17.05.2011
Сообщений: 1,660
|
Это не совсем так. Существуют исполняемые файлы в виде текста, типа bat, cmd, js, vbs и т.п. где очень четко прослеживается след языка.
Для бинарных случаев существуют программы вида ExeInfo PE, PEiD и т.п. которые находят следы языка программирования и сообщают об этом всем желающим. |
21.04.2019, 07:21 | #25 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Это не исполняемые, а интерпетируемые. Есть ещё шитый код. Файлы шитого кода – исполняемые, но исполняемого кода там только главный цикл и интерпретатор, остальной код опять интерпретируемый. Но системе пофиг, что вы интерпретируете. Ей важно, что на машине исполняется. А там следов языка разработки интерпретатора опять нет. Больше того, интерпретируемого текста/кода АПИ не видит даже в том случае, когда он интерпретируется командным процессором в составе самой системы. Это разные части системного кода, а АПИ колышит только как к нему обращаются.
|
21.04.2019, 07:45 | #26 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Языков? Или компиляторов? При разработке целиком на языке ассемблера можно и авторство установить по некоторым особенностям. Например, по порядку операций, порядок которых не влияет на результат. Вы себе АПИ только для самого автора хорошо себе представляете? Компилятор с языком можно связать по базе. Но это не следы непосредственно языка, к которым можно было бы привязать АПИ. Если соглашения, адреса функций, типы и количества параметров соблюдены, а сами фактические параметры валидны, то остальное АПИ уже не касается. Да, есть характерные для языков соглашения о вызовах. Например, сидекл. Вот только и на си можно написать функцию с паскалевым соглашением о вызовах. И, наоборот, функции ВинАПИ даже с паскаля вызываются в соглашениях стдкал и винапи. А если разработать компилятор си для зет 80? Там сидекл вообще не реализуем за неимением регистров общего назначения. Что, только на этом основании скажете, что это уже не си? Си – не паскаль, низкоуровневых операций в обход оператора asm в нём нет. Ни к регистру в обход asm обратиться, ни прерывание прямо на си вызывать. Так что низкий уровень сам по себе, а высокий с ним не смешан. Язык же исходника тот же текст значит то же. Получается, что внутри прилады можно общеязыкастые соглашения послать нафиг. Да, обычно так не делают. Но это не след языка как такового, а след обычая разработчиков компиляторов с языка. Привязаться к нему нельзя. А АПИшные и библиотечные вызовы и соглашения оконных процедур определяются библиотеками и системой. Я однажды на бейсике таких обратных вызовов накрутил, что самому Биллу в страшном сне вряд ли снились. Именно в страшном, потому что криво.
Последний раз редактировалось taras-proger77; 21.04.2019 в 07:49. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обучающая среда обучения языку программирования | Alxdr | C# (си шарп) | 3 | 24.01.2016 14:26 |
Выясннить в каком месте кода происходит win32 ошибка C# проект | lightforever | Фриланс | 0 | 10.05.2011 17:34 |
win32 API.Visual Studio 2008.Создание проекта Win32 | Aleksandr_Yanov | Visual C++ | 2 | 12.09.2010 13:09 |
Win32 API. VS2008. Как создать приложение win32 в vs2008? | Aleksandr_Yanov | Visual C++ | 4 | 12.09.2010 00:59 |
как открыть файл php в каком-либо браузере | osichev | Помощь студентам | 3 | 24.03.2010 20:58 |