Un attimo, cerchiamo di fare un po' d'ordine ...

Windows usa un set di caratteri che potete vedere in

http://www.microsoft.com/globaldev/r...sbcs/1252.mspx

che e' diverso da quello del DOS (ad esempio, la à ha codice 85 esadecimale per il set del DOS mentre ha codice E0 nel set di Windows).

Quando si scrive la à con un qualsiasi editor in Windows, viene inserito il carattere esadecimale E0 (in conformita' al set di Windows). A questo punto pero' questo carattere deve essere usato con Windows che rispetterà il proprio set. E' per tale ragione che un codice del genere

char s[] = "àèéìòù";
MessageBox(NULL, s, "Esempio", 0);

non mostra problemi nella visualizzazione dei caratteri.

Ovviamente, se la stringa viene passata al DOS (nel caso di una applicazione di tipo console ...) essa viene interpretata dal DOS secondo il set di caratteri proprio del DOS. Quest'ultimo visualizza il carattere corrispondente nel proprio set a quello che ha codice E0 (e naturalmente, per il DOS, questo non è la à ...).

Per fare in modo che il carattere sia quello corretto, bisogna introdurlo da un editor in DOS (ad esempio il vecchio EDIT) in modo da inserire il corretto codice ... Aprendo il sorgente con l'EDIT, si può scrivere

char s[] = "àèéìòù";
printf(s);

dato che, ovviamente, la MessageBox non avrebbe senso in DOS ...
E tutto sarebbe corretto.