MultiByteToWideChar et tous ce qui va avec

Résolu
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008 - 8 août 2007 à 22:02
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008 - 9 août 2007 à 16:25
Bonjour

Je suis sous windows et j'utilise VS2005
Je voudrai lister les fichiers et sous repertoire d'un dossier.
Apres quelque recherche a ce sujet , j'ai trouvé , sur http://c.developpez.com un code qui fait ça.
Je le met sur mon code et là j'ai une erreur me disant qu'il y a un probleme de type.
Je lui donne un char * et il veut un LPCWSTR.
Je me renseigne sur ce type (plustot bizard je trouve) et je tombe sur la fonction MultiByteToWideChar() qui si on lui passe les bons parametre convertie du UTF-8 en UNICODE.
Je rajoute ça dans le code et j'essaye de compilé.
Et là une erreur inconnu et que j'arrive pas a decodé.

Erreur : general error c101008a: Failed to save the updated manifest to the file ".\Debug\syncro.exe.embed.manifest". Paramhtre incorrect.
Fichier : mt.exe

Si quelqu'un arrive a la comprendre est ce qu'il aurai la bonté de me dire ce qu'elle veut dire ?

Merci

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
9 août 2007 à 15:57
Salut,

Si "toujour la même erreur" signifie que tu as toujourts "Failed to save the updated manifest to the file", alors le problème ne se situe pas au nieau du code mais d'un fichier manifest. Les fichiers manifest sont une obscure (en tout cas pour moi) invention de M$ permettant d'embarquer des informations sur l'executable qui seront traitées par le Loader de Windows (Le machin qui charge le .exe en RAM avant l'execution du programme.)

Les fichiers manifests peuvent être inclus dans l'executables, ou se trouver dans le même répertoire, avec le même nom  que l'exe suivie de l'extension .manifest.

Ces fichiers sont presque plus anecdotique que vraiment utile. Bref tu as une erreur à la c**.
Une option du projet qui foire un problème de fichier ou autre.

Tu dois pouvoir virer la génération de manifest dans les configuration du projet.
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2007 à 22:08
Règle ton proj en ANSI (multi bytes...) au lieu de UNICODE.
Tu travailleras ainsi avec des char* comme d'hab.

ciao...
BruNews, MVP VC++
0
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008
8 août 2007 à 22:46
Merci bien
Ca ma permi d'enlever les ligne avec MultiByteToWideChar() et les LPCWSTR ...
Mais par contre , j'ai toujour la même erreur , ça veut dire que ça vien pas de là :(

Je met le code au cas ou , mais bon , a ce niveau pour le moment , c'est que du copier coller de http://c.developpez.com

bool test(){
    WIN32_FIND_DATA File;
    HANDLE hSearch;
    BOOL re;
    hSearch=FindFirstFile("*.*", &File);
    if(hSearch ==  INVALID_HANDLE_VALUE){
        return FALSE;
    }
    re=TRUE;
    do{
        /* Traitement */
        re = FindNextFile(hSearch, &File);
    }while(re);
    FindClose(hSearch);
    return TRUE;
}

Merci
0
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008
9 août 2007 à 16:25
Merci ça marche
Merci
0
Rejoignez-nous