Ответы пользователя по тегу C++
  • Как реализовать равномерный генератор случайных чисел на с++?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Поиск "uniform random" в гитхаб

    https://github.com/mathusummut/UniformRandom
    Ответ написан
    Комментировать
  • Лучшие источники для изучения CPP?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Если есть хоть какой-то опыт то посоветую мое любимое - попробуй написать игру на unreal engine 4

    Создатели движка сделали все очень грамотно, когда я писал под UE4 то не слабо подтянул свой уровень
    После советовал нескольким знакомым и они тоже дали положительный отзыв
    Ответ написан
    6 комментариев
  • Как правильно организовать структуру хранения и контроль версий проекта?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Если дело обстоит "куча либ (dll) и один проект" то я делаю у себя так:

    Для каждой либы отдельный репозиторий, такая либа знать не знает в каких проектах её будут использовать, она просто выдает по версиям свои dll, кто какую версию хочет - такую и берет

    Проекты которые используют эти либы хранят их у себя в папке libs

    Выходит:
    1) Вы создаете проект
    2) Берете нужные либы и копируете их dll прямо в папку проекта (я лично не люблю когда проект начинает доставать каждый раз либы неизвестно от куда, источники могут умереть или изменится)
    3) Готово

    Система такая же как если бы эти либы были не ваши, а от стороннего разработчика. У таких разработчиков иногда есть репозитории, и есть готовые dll. Как вы поступаете в таком случае? Подключаете репозиторий и компилируете? Просто копируете dll в проект? Делайте так же и с вашими либами

    В visual studio, кстати, есть так называемые "решения", которые собирают вместе проекты и компилируют их
    Ответ написан
    2 комментария
  • Как использовать код С++ совместно с С?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Ну, во первых static функции станут приватными и их не будет видно вне файла
    Во вторых extern "C" {} надо использовать на хедерах

    #ifndef HSLOCAL_INCLUDED
    #define HSLOCAL_INCLUDED
    
    #include <stdio.h>
    #include <string.h>
    #include <limits.h>
    #include <hs/hs.h>
    #include <errno.h>
    extern "C" {
     char *readInputData(const char *inputdata, unsigned int *length);
    }
    #endif //HSLOCAL_INCLUDED


    #include "hslocallib.h"
    
    char *readInputData(const char *inputdata, unsigned int *length) {
        FILE *file = fopen(inputdata, "rb");
        if (!file) {
            fprintf(stderr, "Невозможно прочитать файл \"%s\": %s\n", inputdata,
                    strerror(errno));
            return NULL;
        }
    
        if (fseek(file, 0, SEEK_END) != 0) {
            fprintf(stderr, "Невозможно определить конец файла \"%s\": %s\n", inputdata,
                    strerror(errno));
            fclose(file);
            return NULL;
        }
        long dataLen = ftell(file);
        if (dataLen < 0) {
            fprintf(stderr, "Невозможно вернуть положение указателя в файле  %s\n", strerror(errno));
            fclose(file);
            return NULL;
        }
        if (fseek(file, 0, SEEK_SET) != 0) {
            fprintf(stderr, "Невозможно найти начало файла \"%s\": %s\n", inputdata,
                    strerror(errno));
            fclose(file);
            return NULL;
        }
    
        char *inputData = malloc(dataLen);
        if (!inputData) {
            fprintf(stderr, "Невозможно выделить память для входных данных\n");
            fclose(file);
            return NULL;
        }
    
        char *ptrInputData = inputData;
        size_t bytesLeft = dataLen;
        while (bytesLeft) {
            size_t bytesRead = fread(ptrInputData, 1, bytesLeft, file);
            bytesLeft -= bytesRead;
            ptrInputData += bytesRead;
            if (ferror(file) != 0) {
                fprintf(stderr, "Ошибка чтения файла\n");
                free(inputData);
                fclose(file);
                return NULL;
            }
        }
        fclose(file);
    
        *length = (unsigned int)dataLen;
        return inputData;
    }
    Ответ написан
    1 комментарий
  • Как конвертировать std::wstring в TCHAR*(или в FString напрямую)?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    FString str = FString(myWstring.c_str());
    Кажется так
    Ответ написан
    Комментировать
  • Как лучше реализовать графический интерфейс?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Если у вас нет ничего лютого-тяжелого-экзотического, то пишите все сразу на шарп

    Решение аля "логика на с++ и представление на с#" очень любит наш прогер, но он обычно пишет такие лютые математические алгоритмы от которых у меня голова кругом, в данном случае это оправдано. Просто скомпилировать плюсовый код как dll и линкануть в шарп

    Ах да, если так же не нужна кроспалтформеная программа, тогда точно пишите на шарпе, на нем разработка в разы быстрее

    Какую работу выполняет ваш код?
    Ответ написан
    2 комментария
  • Какая графическая библиотека поддерживает сложное рястягивание?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Эм, opencv? Мне кажется вообще под что угодно для работы с изображениями можно брать opencv

    https://docs.opencv.org/3.4/dd/d52/tutorial_js_geo...
    Пример Get Affine Transform Example
    Ответ написан
    Комментировать
  • Не создается проект в UE4. Что делать?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Русских букв нигде нет? В пути, названиях?
    Ответ написан
  • Как инициализировать массив из char stringом?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    string str = "Test";
    const char *cstr = str.c_str();


    string str = "Test";
    char *cstr = new char[str.length() + 1];
    strcpy(cstr, str.c_str());
    Ответ написан
    Комментировать
  • Какие библиотеки использовать для создания игр?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    unreal engine 4 использует C++
    А если писать игру без движка, то придется сначала написать движок, а это работа по сложней создания игры
    Ответ написан
    Комментировать
  • Изучил C#, написал пару своих проектов. Стоит ли переходить на С++?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    С++ неплохо сочетается с C#, наш программист пишет на плюсах либы разных алгоритмов/злого матана, считает это на куда ядрах и потом подключает эти либы в шарп

    т.е. быстрый низкоуровневый код написан на с++
    на с# написано все остальное т.к. на нем приятней и быстрее реализовывать что-то
    Ответ написан
    Комментировать
  • Зачем и когда нужно использовать указатели в C++?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Если кратко, то экономия памяти и тактов проца, когда алгоритм не сложный, это не заметно, но вот вы делаете генерацию мира в 2D игре и перебираете в цикле десятки сотен тысяч массивов с тысячами элементами, и каждый раз проц берет и по одному копирует каждый элемент массива в новый

    И вот ваша генерация жрет 5 минут и 10 гигабайт ОЗУ, вместо 10 секунд и 50 мегабайт
    Ответ написан
    Комментировать
  • Какие книги, ресурсы посоветуете для embeded программиста изучающего С++?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Christopher Kormanyos
    Real-Time C++
    Ответ написан
    Комментировать
  • Можно ли писать нейронные сети для микроконтроллеров или лучше использовать ПЛИС?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    МК не потянет такое, если вы только не хотите робота который будет принимать решение что перед нем через несколько дней
    Написать нейросеть под ПЛИС если был только опыт работы с ардуино будет ну оочень долго, для начала оцените масштабы и попробуйте написать сеть которую выполняет вашу задачу на каком-нибудь с++ совсем без пакетов и библиотек, даже библиотеки матриц не берите, пишите все сами, сколько времени это займет?

    Наверно вы хотите по быстрей получить результат, берите мощный одноплатник, что хорошо подойдет так это tegra jetson tx1, но потянет ли ваш бюджет? Может тогда выбрать для себя задачу по проще для начала?
    Ответ написан
    3 комментария
  • Как сильно загружается МК при проверке длинного условия?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Надо иногда почитывать учебники по языку программирования, на котором пишите
    Раньше бы ваш вопрос был актуален, со старыми компиляторами, сейчас же код
    int I;
    I = I + 1;
    if(I < 5){ }


    Ничем не отличается от вашей оригинальной записи такого вида:
    int I;
    if(++I < 5){ }


    Компилятор все подведет под одно.
    Надеюсь, ответил на ваш вопрос х)
    Ответ написан
    Комментировать
  • Хотелось бы сделать модель беспроводного управления освещением на STM32F0DISCOVERY?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Из пушки по воробьям, никогда не понимал когда люди берут мощную платформу и используют только около 10% её возможностей

    Используйте ESP8266 + ATtiny24 и если вам надо юзать сразу много ламп, то тогда + регистр сдвига (74HC595 например)

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