Archivio del gennaio 2010

Ricavare i programmi auto-avvianti dal registro di sistema con C#

All’interno del registro di sistema di Windows, esistono diverse chiavi in cui si possono creare valori indicanti l’avvio di un programma allo startup del sistema.
Tra queste chiavi ci sono HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run e HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run.
Vediamo come sia possibile ricavare i valori presenti in queste chiavi, stamparli su console e creare un programma da eseguire all’avvio:
Continua >

Wrapper per SQLite in C++

Il seguente articolo mostra come creare un semplicissimo wrapper attorno alle funzioni della libreria Sqlite.
Per il seguente esempio, verrà utilizzato MinGW su Windows 7.
Continua >

Introduzione alla libreria GMP

La libreria GMP (Gnu Multiple Precision Arithmetic Library) offre la possibilità di lavorare con valori numerici al di fuori dalla portata dei tipi standard del C/C++.
Essa permette di lavorare agevolmente con interi, razionali e numeri in virgola mobile, ponendo come unico limite quello della memoria del calcolatore disponibile.
Continua >

Qt e C++: thread e mutex

La libreria Qt ha a disposizione diverse classi per sviluppare applicazioni multithread.
Questo articolo mostra come creare due thread e sincronizzarli utilizzando l’accesso mutuamente esclusivo tramite mutex.
Continua >

Qt e C++: un semplice web browser

La libreria Qt mette a disposizione un componente su WebKit, un motore open source per browser web, utilizzato da browser come Epiphany, Chrome, Safari ecc.
Questo esempio mostra come creare un semplicissimo browser con i comuni tasti Stop, Avanti, Indietro, Home e Barra degli inidirizzi.
Continua >

Qt e C++: convertitore da decimale a base n

Risorsa: Convertitore

L’articolo in questione mostra come creare un convertitore da un numero positivo in base 10 ad un numero in base n, con n da 2 a 16.
Il programma si compone di una QLineEdit promossa a MyLineEdit (leDecNum) dove inserire il numero decimale, una QLabel (lblConvNum) che riceverà il valore convertito e una QSpinBox (spinBox) che rappresenta la base (modificando le proprietà minimum e maximum, possiamo forzare un valore da 2 a 16).
Continua >

Tokenizzare una stringa in C++

Il seguente programma tokenizza una stringa a partire da un insieme di delimitatori:

#include <iostream>
#include <string>
#include <vector>

std::vector<std::string> split(const std::string& str, const char* delim = " "){
	std::vector<std::string> vs;
	char* token;
	token = strtok((char*)str.c_str(), delim);
	while (token != NULL){
		vs.push_back(std::string(token));
		token = strtok(NULL, delim);
	}

	return vs;
}

int main() {
	std::vector<std::string> vs1(split("1, 2, 3, 4, 5, 6", ", "));	

	for(std::vector<std::string>::iterator begin = vs1.begin(); begin < vs1.end(); begin++){
		std::cout << *begin << std::endl;
	}
}

C++: Grandezza dei tipi di dati

L’operatore sizeof è utilizzato per ottenere la grandezza dell’argomento passatogli.
Il valore è sempre un multiplo della grandezza del tipo char, che usualmente è di 1 byte.
E’ possibile utilizzare come argomento o un tipo o una variabile. Nel secondo caso possono essere omesse le parentesi tonde (es: sizeof myvar;).
Continua >

Muovere un controllo di un form in C#

Il seguente codice permette di muovere un Button di un form semplicemente trascinandolo col mouse.
Tre Combo Box permettono di indicare quale tasto del mouse utilizzare per muovere il controllo mentre una Check Box permette di disabilitare il movimento, rimuovendo gli event handler che lo gestiscono dal Button in questione.
Continua >