Code Monkey home page Code Monkey logo

leccore's Introduction

leccore

liblec core library

Lines of code GitHub issues GitHub closed issues

Release Info

GitHub release (latest by date) GitHub Release Date

Commit Info

GitHub last commit GitHub commit activity

About the Library

The leccore is designed for the rapid development of modern, efficient and easy to maintain C++ applications. It is part of the liblec libraries. It is built to contain the most fundamental building blocks like databases, file handling, application updates, registry settings, and other general helper utilities specially designed to make building robust, sophisticated applications a breeze. Furthermore, it is designed to bind together all the other liblec libraries like lecui and lecnet.

Classes

The following classes have been added to the library

Class Name Description Interface
database::connection Database connection #include <liblec/leccore/database.h>
file File handling helper #include <liblec/leccore/file.h>
pc_info PC hardware information #include <liblec/leccore/pc_info.h>
hash Cryptographic hash #include <liblec/leccore/hash.h>
encode::base32 Base32 character encoding #include <liblec/leccore/encode.h>
encode::base64 Base64 character encoding #include <liblec/leccore/encode.h>
app_version_info Application version information #include <liblec/leccore/app_version_info.h>
registry Registry reading and writing #include <liblec/leccore/registry.h>
encrypt Encryption #include <liblec/leccore/encrypt.h>
settings Application settings #include <liblec/leccore/settings.h>
check_update Checking for app updates #include <liblec/leccore/web_update.h>
download_update Downloading app updates #include <liblec/leccore/web_update.h>
zip Zipping to a zip archive #include <liblec/leccore/zip.h>
unzip Unzipping a zip archive #include <liblec/leccore/zip.h>
user_folder Getting the path to known user folders #include <liblec/leccore/system.h>
commandline_arguments Parsing command line arguments #include <liblec/leccore/system.h>
shell Shell helper class #include <liblec/leccore/system.h>
clipboard Clipboard class #include <liblec/leccore/system.h>
image Image class #include <liblec/leccore/image.h>

Usage Examples

The library is used in the pc_info and collab apps.

Prebuilt Binaries

Prebuilt binaries of the library can be found under releases.

Compile-time Dependencies

The library has the following compile-time dependencies:

  1. boost C++ libraries
  • assumes boost 1.72 prebuilt binaries are in C:\local\libs\boost_1_72_0
  • download prebuilt boost binaries here
  • For example, the binaries for boost 1.72 are here
  • For Microsoft Visual Studio 2019 you can download the file boost_1_72_0-msvc-14.2-64.exe (64 bit) and boost_1_72_0-msvc-14.2-32.exe (32 bit).
  1. sqlcipher
  • assumes sqlcipher prebuilt binaries are in C:\local\libs\sqlcipher
  • you can use the pre-compiled files here
  1. crypto++
  • assumes crypto++ prebuilt static library files are in C:\local\libs\cryptopp
  • you can use the pre-compiled files here
  1. poco
  • assumes poco prebuild static library files are in C:\local\libs\poco
  • you can use the pre-compiled files here

If the boost, sqlcipher and/or crypto++ libraries are installed elsewhere you will need to change the Microsoft Visual Studio project properties under Properties - C/C++ - General - Additional Include Directories and also under Properties - Linker - General - Additional Library Directories.

Run-time Dependencies

  1. sqlcipher
  2. openssl

You can use the pre-compiled files for both from here.

Building

Create a folder '\liblec' and clone the repository into it such that it resides in 'liblec\leccore'. Open the Microsoft Visual Studio Solution file liblec\leccore\leccore.sln. Select Build -> Batch Build, then select the desired configurations of the given four:

  1. Debug x86
  2. Relese x86 (32 bit Release Build)
  3. Debug x64
  4. Release x64 (64 bit Release Build)

Build.

Three folders will be created in the \liblec directory, namely bin, lib and include. Below is a description of these subdirectories.

  1. bin - contains the binary files. The following files will be created:
File Description
leccore32.dll 32 bit release build
leccore64.dll 64 bit release build
leccore32d.dll 32 bit debug build
leccore64d.dll 64 bit debug build
  1. lib - contains the static library files that accompany the dlls. The files are named after the respective dlls.
  2. include - contains the include files

Linking to the Library

Microsoft Visual Studio

Open your project's properties and for All Configurations and All Platforms set the following:

  1. C/C++ -> General -> Additional Include Directories -> Edit -> New Line ... add \liblec\include
  2. Linker -> General -> Additional Library Directories -> Edit -> New Line ... add \liblec\lib
  3. Debugging -> Environment -> Edit ... add PATH=\liblec\bin;PATH%

Now you can use the required functions by calling #include <liblec/leccore/...>

Build.

Deploying your Application

If it's the 32 bit build you will need to deploy it with leccore32.dll, sqlcipher32.dll and libeay32.dll in the same folder. If it's a 64 bit build use leccore64.dll, sqlcipher64.dll and libeay64.dll.

leccore's People

Contributors

alecmus avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

leccore's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.