Easylib win32 c++ pour du prototypage rapide

Description

EasyLib est une bibliothèque de petites classes en c++ pour créer rapidement des application Win32. Tout cela en évitant les MFC, et en programment en fermant les yeux. Je l'utilise essentiellement pour écrire des programmes consoles pour la lecture/écriture de fichiers.
Vous écrivez un programme en DotNet, et à l'installation sur un machine sans le framework, vous avez un vilain message d'erreur, regardez le dernier exemple pour vérifier l'installation du dotnet 3.5

Classe InitEasy : Récupère les arguments, les instances
Classe Object : classe parent pour les string, list et autres. Contient les fonctions virtuelles pour la comparaison, le clonage, le type, l'écriture console, conversion en chaîne
Class Process : Gère l'execution de programmes
ex : Process p("c:\\mo_prog.exe");
p.RunAndWait(); // lance le programme mais attend la fin de son execution avant de continuer

Classe String : Gère les chaînes de charactères
Classe Country : Gère un dictionnaires de clefs contenues dans un fichier 'ini' pour chaque pays
Classe File : Lecture, Ecriture de fichiers, gestion des attributs
Classe List : Liste template doublement chaînée

Fonctions globales :

List<String> ListDirectory(const String &path, const String &pattern) : retourne la liste des fichiers d'un répertoire
bool MakeDirectory(const String &path) : Crée un répertoire
bool DeleteDirectory(const String &path) : Supprime un répertoire

DWORD MessageBox(String text)
void Wait(int millisecond) : attend un nombre de millisecondes, sans bloquer Windows (boucle de messages)
void DoEvents() : Purge la boucle de message de Windows (à utiliser lors de traitements lourds

void OpenURL(String url) : Lance le navigateur avec la page web url

Base de registre : lecture, ecriture, voir le eRegistry.h

Source / Exemple :


//exemple 1 : dictionnaire

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
  String path = argv[0];
  Country c;

  c.Path(path.Path() + L"countries");
  List<String> l = c.Languages(); // liste les langues

  l.PrintLn();
  WaitForEnterKey();
	
  c.Language(l[1]); // choisie la langue 1

  c[L"OPEN"].Print(); // imprime le texte avec la clef 'OPEN'

  WaitForEnterKey();
  return 0;
}

//exemple 2 : Lecture/écriture fichier

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
  String path = String(argv[0]).Path();  // chemin de l'application
  String text = L"exemple de texte";
  File fichier(path + L"exemple.dat");

  fichier.Open();
  fichier.WriteDouble(10.456);
  fichier.WriteInt(55);
  fichier.WriteString(text);
  fichier.WriteInt(365);
  fichier.WriteString(L"la suite");
  fichier.Close();

  String result;
  fichier.Open();
  result = fichier.ReadDouble();
  result.PrintLn();
  result = fichier.ReadInt();
  result.PrintLn();
  result = fichier.ReadString();
  result.PrintLn();
  result = fichier.ReadInt();
  result.PrintLn();
  result = fichier.ReadString();
  result.PrintLn();
  fichier.Close();

  WaitForEnterKey();
  return 0;
}

// Vérification si le framework DotNet 3.5 est installé

#include "stdafx.h"

#include <stdio.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
  if ( !RegistryLocalKeyExists(L"SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5") ) {
    MessageBox(L"DotNet 3.5 is not installed. Download dotnetfx35setup.exe", L"Error", MB_OK, MB_ICONERROR);
    OpenUrl(L"http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en");
  }
  return 0;
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.