Библиотека CUtils

Друзья! В данной статье мы бы хотели рассказать про кроссплатформенную коллекцию утилитных C++ компонентов CUtils.

CUtils — это довольно полезный инструмент при разработке кроссплатформенного программного обеспечения на языке программирования C++.

В первой версии этой коллекции содержатся компоненты, которые были необходимы в разработке игрового движка Case Engine, такие как SystemConfiguration, INIParser, Notification и т. д.

Установка библиотеки

Вы можете скачать репозиторий уже с собранными файлами под Windows, а можете самостоятельно собрать библиотеку из исходников.

1. скачайте официальный репозиторий коллекции с GitHub -

https://github.com/case-tech/CUtils-Win

И подключите Include и Lib к вашему проекту:

Библиотека CUtils

Библиотека CUtils

2… Установите исходники библиотеки с GitHub

И соберите её с помощью команд:

mkdir Out 
cd Out 
cmake .. 
cmake --build .

Функционал

Хэширование по алгоритму SHA-256

С помощью библиотеки CUtils можно реализовать хэширование данных через заголовок Hashed.hpp:

#include   
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   
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   
#include   
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   
using namespace CUtils;  
int main()  
{  
  Notification::notify(Notifi

А остальное вы сможете посмотреть в нашей документации

Ссылки

Наш GitHub

Официальный сайт

© Habrahabr.ru