Задать вопрос
  • Как сделать динамическую подгрузку кода?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    C++ - компилируемый язык. Соответственно, вы содержимое строки в нем никак не исполните, только если не напишите свой интерпретатор или не скомпилируете код в строке как-то подобно JIT. Можно подключить библиотеку с какой-нибудь Lua и код на Lua исполнять. Или подгружать в специально выделенную память скомпилированный заранее (или библиотекой) машинный код и передавать управление ему (но это надо знать ассемблер, про страницы памяти, API операционной системы и все такое. Это очень сложно). Вообще, C++ - не лучший выбор для динамической подгрузки кода.

    defineCode(std::cout << 13 << std::endl); // work
    Работает, потому что тут макрос просто подставляет код в скобках вместо себя и он компилируется и выполняется.

    defineCode(stringLine); заменяется просто на stringLine, что есть бессмысленное выражение, вырезаемое еще на этапе компиляции.
    Ответ написан
    Комментировать
  • Как сделать динамическую подгрузку кода?

    @dima20155
    you don't choose c++. It chooses you
    Мне кажется, вам лучше сформулировать более конкретно ваши задачи, возможно, уже есть готовое решение для вас.
    Помимо перечисленного выше, есть интерпретаторы языка С++ (которые, конечно, так себе, но попробовать их можно), а возможно, вам для вашей цели может быть полезным grpc.
    Ответ написан
    2 комментария
  • Как сделать динамическую подгрузку кода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот этот дефайн коде. Это что тут бывает?

    defineCode(stringLine);

    Если это можно свести к конечному (небольшому) числу вариантов - то можно собрать ну 5-10 библиотеки (*.dll) и подгружать ту логику которая нужна в зависимости от conditions.

    И вообще динамический код считается угрозой №1 с точки зрения антивирусов.
    Ответ написан
    Комментировать
  • Как это можно пофиксить?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как это можно пофиксить?

    Можно внести поле SDL_RendererRenderer в структуру struct structTile.
    Ответ написан
    Комментировать