#pragma once
#include "base_head.h"
class StrArray;
class UTILES_EXPORT Cutl
{
public:
	Cutl(void);
	~Cutl(void);
	//cifra y descifra datos con FLAG_PACKAGE_HEAD_0_ENCRIPT1
	static void cifra1(BYTE*b,int nb);
	static void cifra1(char*b);//ojo con los char despues de cifrar no usar stlen ni semejantes
	static void descifra1(char*b);
	static void descifra1(BYTE* b,int nb);
	//--------------------------------------------------------
	static void big_little(BYTE* b,int nb);//cambia de little a big_endian y viceversa
	//ordenacion----------------------------------------------
	static int busca(BYTE*lista,int n,int sizeElement,BYTE *e, int (*funcion)(BYTE*,BYTE*) );//busqueda dicotomica
	static StrArray* stringSplit(char *orig,char* subStr, StrArray*buf);
	
	//identificador pc----------------------------------------
	static char* id_pc(char*idm, int nb);//proporciona un identificador unico de la computadora
	static DWORDLONG getMemoDisp();//devuelve la memoria disponible
	static DWORDLONG getMemoDisp1Malloc();//devuelve la memoria disponible real en mem1 en un malloc
	
	//identificacion de usuario de windows--------------------
	static char* getWinUser(char* buf);//leng de 256
	
	//funciones de string--------------------------------
	static int str_hex2int(char* st);//pasa de cadena de caracteres tipo 0xff a entero
	static void int2str_hex( char* st , int n);

	static bool lanza_exe(char *appName, char *comline, DWORD *processId = NULL);//ejecuta appName
};
