Друзья! В данной статье мы бы хотели рассказать про кроссплатформенную коллекцию утилитных C++ компонентов CUtils.
CUtils — это довольно полезный инструмент при разработке кроссплатформенного программного обеспечения на языке программирования C++.
В первой версии этой коллекции содержатся компоненты, которые были необходимы в разработке игрового движка Case Engine, такие как SystemConfiguration, INIParser, Notification и т. д.
Установка библиотеки
Вы можете скачать репозиторий уже с собранными файлами под Windows, а можете самостоятельно собрать библиотеку из исходников.
1. скачайте официальный репозиторий коллекции с GitHub -
https://github.com/case-tech/CUtils-Win
И подключите Include и Lib к вашему проекту:
2.. Установите исходники библиотеки с GitHub
И соберите её с помощью команд:
mkdir Out
cd Out
cmake ..
cmake --build .
Функционал
Хэширование по алгоритму SHA-256
С помощью библиотеки CUtils можно реализовать хэширование данных через заголовок Hashed.hpp:
#include <Hashed.hpp>
using namespace CUtils;
int main()
{
Hashed hasher;
std::string originalText = "Hello, world!";
std::string filename = "example";
hasher.HashAndSave(originalText, filename);
std::string savedHash = hasher.ReadHashFromFile(filename + ".hash");
return 0;
}
INI Parser
С помощью заголовка INIParser.hpp можно реализовать парсинг данных из конфигурационного файла .ini:
#include <INIParser.hpp>
using namespace CUtils;
int main()
{
INIParser parser("config.ini");
if (parser.Load())
{
std::string value = parser.GetValue("Settings", "Resolution");
std::cout << "Resolution: " << value << std::endl;
parser.SetValue("Settings", "Resolution", "1920x1080");
parser.Save();
}
else
{
std::cerr << "Failed to load INI file." << std::endl;
}
return 0;
}
NoisePerlin
В CUtils уже есть готовая реализация алгоритма Шума Перлина:
#include <NoisePerlin.hpp>
#include <iostream>
using namespace CUtils;
int main()
{
NoisePerlin perlin;
double value = perlin.Noise(1.0, 2.0);
std::cout << "Perlin Noise Value: " << value << std::endl;
return 0;
}
Notification
Вы можете реализовать вывод ошибок, предупреждений, информации с помощью заголовка Notification.hpp:
#include <Notification.hpp>
using namespace CUtils;
int main()
{
Notification::notify(Notifi
А остальное вы сможете посмотреть в нашей документации
Ссылки
Автор: case-tech