• Клиент-серверное приложение?

    @MarkusD Куратор тега C++
    maaGames, распиши, каким сетевым протоколом пользуешься, какой у тебя протокол соединения между клиентом и сервером с открытия сокета и до перехода в рабочий режим.

    Использование базы данных в целом ряде случаев является непрофессиональным оверинженерингом. Для обращения к услугам баз данных нужно техническое обоснование и условия неизбежности использования.
    Написано
  • Какие фреймворки учить для C++?

    @MarkusD Куратор тега C++
    Cayrus90,
    Любая нормальная игра стоит на БД, думаю тут вопросов не будет

    Да нет, тут вопросы будут. Зачем в игре БД? Зачем игре БД? Какое рациональное основание есть для того чтобы использовать базы данных в игре?

    Давай начнем с технического обоснования использования баз данных в играх. Какие типы баз данных существуют? Для каких данных используются базы этих типов? Какие задачи решаются базами данных? Какие задачи ставятся при разработке игрового проекта?
    Написано
  • Какие фреймворки учить для C++?

    @MarkusD Куратор тега C++
    Cayrus90
    не нашел как работает с++ с бд

    Какая стоит задача по работе с базой в среде C++?

    регулярными выражениями

    В стандарте уже все есть.

    Зачем тебе что-то учить если ты еще ничего не применяешь? Какие перед тобой стоят задачи? Какими парадигмами ты пользуешься для их решения? Какие у тебя критерии выбора технологий?

    Если тебя интересует графика, то учи линейную алгебру, математический анализ, тензорную алгебру, теорию вероятности, дискретную математику, математическую статистику, общую физику, оптику, электродинамику, общую теорию относительности. Render engineer должен все это знать, плюс идеально знать стандарт языка, всю стандартную библиотеку, архитектурные шаблоны, шаблоны проектирования и методики их применения.
    Написано
  • Почему sfml нормально не работает?

    @MarkusD Куратор тега C++
    Afafks123132132165 , попробуй изложить свой вопрос в форме грамотной связной речи. Возможно так тебя будет легче понять.
    Выложи свой код на github чтобы перед ответом можно было изучить его проблемы.
    Т.к .ты что-то писал по видеоурокам, в твоем вопросе будет полезно указать и ссылку на это видео.
    Написано
  • Какую лучше использовать UI библиотеку для C++ Visual Studio 2019?

    @MarkusD Куратор тега C++
    Дмитрий Пархоменко, если твоя основная работа на шарпе, то тебе на нем же UI и будет удобнее делать. Низкий уровень довольно легко подключается через C++/CX.
    В некоторых моих утилитах используется движок проекта. Для этого проект вместе с фреймворком собираются в статическую библиотеку, которая далее линкуется к библиотеке классов на C++/CX, где и формируется слой абстракции для управления движком с верхнего уровня.
    После этого библиотекой классов очень просто пользоваться в проекте утилиты.

    Ну и еще не стоит недооценивать C#. AOT в современном шарпе практически нивелирует разрыв быстродействия между реализациями на плюсах и на шарпах.
    Написано
  • Как можно программно реализовать список на си?

    Chemodan228, ты не хочешь как решение отметить этот верный и исчерпывающий ответ?
    Написано
  • Почему код не компилируется в Visual Studio 2019?

    @MarkusD Куратор тега C++
    mardari98, это не совсем решение. Твой вопрос этот совет снимает, но в самое ближайшее время следование этому совету поднимет для тебя ряд других вопросов, которые и предсказать не получится.

    Решение же твоего вопроса находится на несколько пунктов по дереву настроек выше. Тебе надо выбрать правильную подсистему исполнения: Linker -> System -> SubSystem.
    Сейчас у тебя выбрана, скорее всего, Console, для этой подсистемы точка входа по умолчанию - mainCRTStartup, для линковки которой и требуется функция main. Для подсистемы Windows точкой входа будет WinMainCRTStartup, для линковки которой требуется наличие WinMain в проекте.

    Точку входа трогать не надо. Надо изменить подсистему исполнения твоего проекта.
    Написано
  • Сколько строк нормально для класса?

    @MarkusD Куратор тега C++
    theNorthWind, может лучше сменить формулировку вопроса на "Сколько атомарных задач допустимо для типа, чтобы он не скатился в богоподобие и дурно пахнущий код"?

    Какое отношение может иметь число строк к критериям приемлемости? Твое число строк учитывает документацию и комментарии? Оно учитывает только определение типа или оно должно учитывать сумму как определения типа, так и определения всех функций из пространства этого типа? Это число должно учитывать пустые строки, используемые для разграничения функциональных блоков?

    Нормально ли делать класс из около 300 строк?

    300 строк чего? 300 построчных объявлений методов и полей без порядка, документации и семантического разделения? Нет, не нормально. Но вот с документацией, стилистическим и функциональным разделением, с оформлением и акцентами может выйти и больше 300 строк исключительно по делу.
    Написано
  • Как открыть файл с расширением .npk?

    tikhonov_vl , так а игра какая?
    Ты понимаешь ведь, что в общем смысле разрешение файла никак не связано с его внутренним строением?
    Написано
  • Выражение должно иметь типа указателя на объект. В чем суть ошибки?

    @MarkusD Куратор тега C++
    priority, упс. Кажется я перепутал адресата для своего комментария. Прошу прощения. :)
    Мне почему-то показалось что это все пишет один только автор.
    Написано
  • Как привести к строке по умолчанию?

    @MarkusD Куратор тега C++
    User700 , для этого делается перегрузка operator << у стрима cout.
    Внешнюю перегрузку нужно делать в соответствии с правилами ADL.
    Написано
  • Можно ли считать зашить бинарный файл внутрь другого и получить к нему доступ?

    IkaR49, было предположение что ты не знаешь как Qt залинковать статически. Но раз ты с этим уже справился, то мой вопрос с тегам снимается.
    Написано
  • Можно ли считать зашить бинарный файл внутрь другого и получить к нему доступ?

    IkaR49 , в вопросе указаны неверные теги. Твой вопрос актуален только для Qt и его режима статической линковки.
    К слову, собрать один PE из нескольких вполне реально, но для этого тебе потребуются довольно глубокие знания принципов работы с PE и инструментов программирования.
    Очень простой и очень слабый пример работы с PE есть у меня в github. По тому, насколько понятным для тебя будет данный код ты можешь определить сложность реализации полноценного PE контейнера своими руками.
    Написано
  • Работа с архивами в c++?

    @MarkusD Куратор тега C++
    Kiha Ki , в каком формате записан этот "файл-архив"?
    Написано
  • Выражение должно иметь типа указателя на объект. В чем суть ошибки?

    @MarkusD Куратор тега C++
    CityCat4, давай, наверное, поправим ответ чтобы он лучше отражал действительность. А то люди так и будут страдать от домыслов что идентификатор без типа имеет тип int.
    Написано
  • Выражение должно иметь типа указателя на объект. В чем суть ошибки?

    @MarkusD Куратор тега C++
    К слову, в стандарте C++ нет типа по умолчанию.
    В C отсутствие типа предполагает тип int, в C++ - является ошибкой синтаксиса.
    Написано
  • Сhar *dictionary[][] = {}; Зачем тут const?

    @MarkusD Куратор тега C++
    Александр,
    Но Я читал что и в массиве символов Я тоже могу не ставить const,
    а вот если Я создаю именно указатель на символьную строку, то const необходим.

    Так и смотри.
    const char* foo = "bar"; - тут "bar" является строковым литералом без размещения. В момент обращения к адресу строкового литерала компилятор для литерала создает размещение со статической продолжительностью хранения. Адрес этого размещения и передается для инициализации foo. Тип размещения определяется как const char[4], тип foo может быть только const char* (изменяемый указатель на неизменяемый символ) или const char* const (неизменяемый указатель на неизменяемый символ).

    char foo[] = "bar"; - тут в отношении "bar" ничего не меняется, но меняется методика инициализации foo. В таком случае размещение литерала уже не требуется (но возможно в ряде случаев), но требуется размещение переменной foo, которое должно быть инициализировано значением литерала. При этом, сама foo будет полноценно изменяемой и после размещения поучит тип char[4].

    Вот о чем ты говоришь в этой цитате. Во втором случае, если тебе надо менять значения символов, ты можешь не ставить const и получить массив изменяемых символов, которые были инициализированы литералом.

    char *dictionary [][2] = ... - тут у тебя двумерный массив указателей на символ. Если ты инициализируешь свой двумерный массив строковыми литералами (а ты именно это и делаешь), компилятор потребует от тебя указать const char* dictionary [][2], т.к. только такая форма в твоем случае будет синтаксически верной.
    При чем, имей в виду что const char* dictionary [][2] означает что ты можешь менять сами указатели в своем двумерном массиве. Если тебе надо чтобы указатели менять было нельзя, тип определения должен быть таким: const char* const dictionary [][2].
    Написано
  • Сhar *dictionary[][] = {}; Зачем тут const?

    @MarkusD Куратор тега C++
    Александр, дай название и ISBN книги.
    Если книга о C++, то написана она неправильно. Если книга о C, то все нормально.
    Написано
  • Сhar *dictionary[][] = {}; Зачем тут const?

    @MarkusD Куратор тега C++
    Александр, код без тега <code> не читается и не соответствует правилам ресурса.
    С другой стороны даже в этом месиве уже видно твою ошибку.

    Отвечая на твой вопрос, с самого первого стандарта C++ строковой литерал имел тип const char[N], где N - это число символов строки включая терминальный символ.

    Правильное определение будет таким:
    // Это будет изменяемый двумерный массив указателей на строковые литералы.
    const char* dictionary [][2] = {
       { "sads", "asda" },
       { "", "" },
    };


    По поводу отличий: добро пожаловать в документацию. Отличие const в том, что модификатор говорит о неизменяемости определяемого значения.

    В целом, твой вопрос легко решается обращением к документации языка.
    Написано