Je cherchais à lister des fichiers d'un dossier grâce aux fonctions de l'API Windows. Je suis donc allé dans MSDN qui m'a donné certain code tout fait... Je le recopie (pas un copier/coller)... bizarre pour commencer, il me semble ne pas avoir fait de fautes mais Visual Studio 2005 me dit qu'il n'arrive pas à convertir implicitement le type char en LPCTSTR.... enfin bref, pour abréger un peu, j'ai fait des copier coller de tous les codes microsoft qui se rapportaient aux fichiers.... et ben aucun ne marchait.. Là où j'ai vu un truc bizare, s'était pour la création de fichier, ca marchait, sauf que le fichier avait un nom en caractères chinois (ou Jap fo po tro m'en demander).... Je suis persuadé que cela vient de la conversion de char vers LPCWSTR (ou LPCTSTR).... enfin j'y passe toute la soirée d'hier, sans succès.
Ce matin je décide de recopier le code dans Borland (C++ Builder X)... et bingo, le même code, celui qui foirait lorsqu'il était compilé avec VS2005, il marche nikel et me trouve ce à quoi je m'attendais....
Quelqu'un aurait-il une explication de cet étrange phénomène : le fait qu'un code microsoft ne fonctionne pas avec leur propre compilateur mais avec des compi concurrents ????
Voila, pour info, voici le code de recherche du 1er fichier du dossier :
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
printf ("Target file is %s.\n", argv[1]);
hFind = FindFirstFile(argv[1], &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle. GetLastError reports %d\n",
GetLastError ());
return (0);
}
else
{
printf ("The first file found is %s\n",
FindFileData.cFileName);
FindClose(hFind);
return (1);
}
}
et VS2005 m'oblige à rajouter devant le 1er argument de FindFirstFile (qui est de type char), ceci : (LPCTSTR) alors qu'avec BC++Builder X, ca marche nikel...
Voila le deal....
Quelqu'un comprendrait-il quelque chose ???
++
PS : Bonjour à tous !!!
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
J'ai eu un probleme semblable quand j'ai essayer VS2005 pour la premiere fois. Je sais pas pk, mais il semble que l'unicode est activer par defaut dans les nouveaux projects. J'ai po VS2005 en ce moment devant moi mais l'option
a changer est dans les options du project(''caracter set'' je croi). Bonne chance!
Okiiiiiiiii !!!!!!!!
Merci beaucoup.... ca marche maintenant !!!!
L'option à régler est effectivement Character Set : dans Project -> <Project Name> Properties -> Configuration Properties -> General
et il suffit de régler Character Set sur "Not Set" et tout marche nikel.... Merci encore....
++
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.