Сап братья-тучаны. Начал вкатываться в СИ в декабре. В итоге изучил СИ где то за пол тора месяца с решением задачек из книжки. Каждая тема в языке была мне понятна полностью, в итоге я двинулся дальше, а именно изучать WinApi. Начал тоже с книжки одной, изучил основы, окна, сообщения, процессы, потоки, менюшки, синхронизацию и все основное что требуется для нормальной программы на Windows. И вот после этих основ я просто встал в какой то ступор. Ведь я просто не понимаю КАК написать мне свою первую НАСТОЯЩУЮ программу, самостоятельно? Я не могу понять, каким хером мне теперь эти полученные знания задействовать на настоящей практике? Как написать то свою первую программу? Хотя я изучил СИ, изучил основы WinApi а как написать собственную программу не знаю... Знатно я проебался. Походу я реально даун для такой работы.
>>3673 (OP) winApi говно мамонта, уже даже самим микрософтам очевидно что это никуда не годится, потому они и выкатывают всякий шарп и другие штуки, чтобы не работать с уровнем winApi никогда больше.
>самостоятельно? winApi - это библиотека. Ты не можешь самостоятельно изучить библиотеку, тебе нужно читать к ней документацию. И в защиту микрософта скажу что у них очень хорошая документация, где не только описание функций и аргументов - но и какие-то статьи-ревью, которые человеческими словами описывают концепцию и логику работу. И такая же есть про создание окна: https://docs.microsoft.com/en-us/windows/win32/learnwin32/your-first-windows-program Или про работу с клаво-мышкой на низком уровне: https://docs.microsoft.com/en-us/windows/win32/inputdev/raw-input Обрати внимание что там есть описание, есть пример кода который можно просто скопировать не думая и посмотреть как он работает, и после есть статьи по каждой функции с описанием допустимых параметров. Это почти лучший вид документации, что я видел. Явно не ту либу выбрал, чтобы жаловаться на неё. По winapi вроде как даже книжки есть.
>>3674 Банальный вопрос, но как читать эту самую документацию? Просто брать и заходить читать разные разделы в документации и добавлять в закладки нужное для каких-либо программ будущих?
> Явно не ту либу выбрал, чтобы жаловаться на неё. Ни в коем случае. Я скорее жалуюсь на себя.
> По winapi вроде как даже книжки есть. Конечно, сейчас читаю Рихтера. Он каждую тему более подробнее описывает но минус в том, что нету практики в этих книгах. По этому хоть я и понимаю эти темы, теплее от этого сильно не становится. Ведь практики нет, следовательно эти знания превращаются в тыкву.
>>3677 > как читать документацию Вначале просто прочитать от корки до корки, особо не запоминая, дабы получить общее представление о возможностях библиотеки. Далее, уже в процессе решения задач, возвращаться к конкретным сущностям, с которыми будешь работать.
> нету практики Да, практика обязательна, иначе нахватаешься только общих мыслей, а конкретика вся улетит. Пиши что-нибудь, не важно что. Клиент имиджборды, графический редактор, игру на спрайтах.
>>3691 Неплохая задача, СИ подойдёт. Рекомендую не морочить голову с красивым интерфейсом, а сделать консольный чат, который будет делать только чат+шифрование, то есть только то, что необходимо. В криптографии сечёшь?
>>3687 > Ну а какие дружественные есть? Любые, распространяемые в виде исходников. > На линукс писать не хочется. Почему? Это просто и удобно, инструментарий интегрирован в большинство дистрибутивов.
>>3694 Да и забей на процессы/синхронизацию/многопотчность - это всё тебе не нужно на данном этапе, и вообще довольно глубокие концепции, лучше к ним подходить, когда действительно уже готов будешь. >>3695 Если нет задач, чтобы была серьёзная защита, то можно какую-нибудь игрушечную схему придумать с любым шифром, в противном случае, взять готовое решение (ssl) и не придумывать велосипеды. Но для ньюфага, конечно, лучше самому сделать, могу потом подкинуть в этот тред идейки.
>>3696 Откуда добывать информацию для написания программ, помимо документации? На каких-нибудь форумах распрашивать? Вот я щас сказал, что хочу написать чат с шифрованием, но без понятия вообще с чего начать пилить эту программу, то есть в какую сторону копать не знаю.
>>3698 >Откуда добывать информацию Не знаю, где оптимальнее всего, источники как правило различные статьи, исходники чужих програм. Если есть возможность, то лучше всегда спросить, вот как ты сейчас, если тебе не видно нужно направление. В твоей конретно задаче нужно с простого начать, для начала твоя программа - бесконечный цикл, который поочерёдно опрашивает ввод пользователя, смотрит были ли входящие соединения по сети, отправляет сообщения и тп.
>>3689 Найди демку текстового чатах (их в сети полно - такую чтобы там одно окно с текстом, ниже полоска ввода сообщения и две кнопки отправить/подключиться), внимательно изучи код, и после на функции отправки-приёма сообщений навешивай шифрование или что тебе нужно.
Для чата с шифрованием не нужно winapi, к тому же интерфейс программ на winapi делать очень муторно, и по виду он довольно мерзкий - лучше возьми либу для UI. Или сразу qt - где наверное даже шифрование можно добавить как элемент из коробки. Не в смысле, что не нужно - а в смысле, что это как писать веб-сервер на ассемблере, как мне кажется.
Winapi нужно, если ты хочешь настроить на компьютере стрим, так чтобы у зрителей была отдельная регулировка громкости игры и громкости музыки (две отдельные аудиодорожки) - а ты при этом слушал музыку как тебе удобно со своей громкостью и в канал с игрой звуки попадать не должны. Вот тут без winapi не разобраться, и ни в одной либе такого функционала скорее всего не будет - потому что ты будешь использовать нераспространённые функции ос, для которых никаких либ особо не существует. А чат с шифрованием - тьфу, его можно на питоне написать или джаваскрипте в браузере (тут год назад анончик целый распределённый файлообменник на джаваскрипте в браузере выкладывал, вроде бы), зачем тебе это си?
>>3701 СИ - отличный язык, для написания системных штук. К примеру, в этом чате ему надо делать неблокирующее io, как только прояснится в голове можно сделать шедулер через виндовый аналог epoll. Брать готовое не советую, делай всё на первых этапах как можно проще и велосипеднее, уложив необходимое в голове в прочный фундамент, усложняй реализацию.
Интересно, стал ли оп наносеком. Сам вяло вкатываюсб в сишарп, не знаю зойчем и что с этим делать игрульки для дебилов на юнити, но мне пока интересно.
>>4070 >Интересно, стал ли оп наносеком Вангую, что нет. По крайней мере, знания программирования на процедурном языке и основы WinAPI этого мягко говоря недостаточно.