PDA

Просмотр полной версии : [Вопрос] Серьезные вещи



jeraqiv
29.11.2015, 16:01
Всем доброго дня. У меня возник вопрос - как разрабатывать Include где используется модульная парадигма программирования, или разработка библиотек DLL. Просто когда я смотрю исходный код - просто страшно понимать что там написано, ибо он слегка отличается от более известного нам - процедурного подхода. Надеюсь вы меня поняли.

Знаете ли вы где есть документация по этому поводу? Просто мне кажется там идет обращение к компилятору и т.п.. А вот эти вещи я еще не понял.

$continue$
29.11.2015, 16:24
Можно почитать урок от ziggi (http://ziggi.org/arhitektura-pawn-proekta-dlya-sa-mp/)

Daniel_Cortez
29.11.2015, 20:18
В дополнение к ответу выше могу порекомендовать уроки по перехвату функций (ссылки в подписи), этот приём очень полезен при написании модулей, часть кода которых должна выполняться в коллбэках типа OnGameModeInit, OnPlayerConnect, etc.
Например, вместо того, чтобы писать для инициализации модуля функцию типа my_module_Init и вызывать эту функцию из OnGameModeInit в моде, можно написать в модуле перехватчик коллбэка OnGameModeInit, и тогда не нужно будет ничего вызывать из мода - перехватчик вызовется сам перед вызовом коллбэка в моде, и в нём можно будет выполнить весь код инициализации модуля.
Кроме того, если не привязывать мод к создаваемому модулю (т.е. не использовать в моде функции/переменные/константы из модуля), то чтобы отключить такой модуль, не нужно будет обшаривать весь мод - достаточно будет всего лишь закомментировав строку с его подключением (#include).

P.S.: Если вы не поняли ни слова из того, что я написал - это нормальная реакция и вам просто не стоит затрагивать тему с модулями.

jeraqiv
29.11.2015, 21:53
P.S.: Если вы не поняли ни слова из того, что я написал - это нормальная реакция и вам просто не стоит затрагивать тему с модулями.


Если ничего не учить и не понимать - в конечном итоге ничего не получится. Я не из тех людей кто боится изучать что-то новое, ибо в IT всё построено на обучении и развитии. Спасибо за советы.

VVWVV
29.11.2015, 22:19
Если вы хотите разрабатывать свою библиотеку, то при создании своей библиотеки вам придется учитывать множество факторов(глобальные переменные, перехват функций, создание макросов(define) и т.п.), которые не будут мешать тому, кто будет пользоваться вашей библиотекой(Смотрите любую библиотеку от Y_Less'a).
Для того чтобы разрабатывать DLL библиотеки, вам нужно будет изучить «базовый уровень» языка C++, а также изучить библиотеку AMX(В интернете есть большое количество уроков по созданию своих плагинов, а также есть хороший PDF файл «Pawn_Implementer_Guide»).
И как сказал Daniel_Cortez: «P.S.: Если вы не поняли ни слова из того, что я написал - это нормальная реакция и вам просто не стоит затрагивать тему с модулями.»