Ouvrir un fichier : problème de LPWSTR ne VC++ [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
8 octobre 2007
-
Messages postés
2
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
8 octobre 2007
-
Je souhaterais obtenir l'adresse d'un fichier en utilisant une fenetre OUVRIR de WINDOWS (un OPENFILENAME).
Or le code ne compile pas car il semble impossible de pouvoir covertir des char[] en LPWSTR.
J'obtient alors l'erreur C2440 impossible de convertir de 'char [260]' en 'LPWSTR' des le parametrage de la fenêtre.

Le code de ma methode est présentée ci dessous :

void

ouvrir(HWND hwnd){

OPENFILENAME ofn;

CHAR szFileName[MAX_PATH];

ZeroMemory(&ofn,

sizeof(ofn));szFileName[0] = 0;
ofn.lStructSize sizeof(ofn);ofn.hwndOwner hwnd;

ofn.lpstrFilter = TEXT(

"Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0");ofn.lpstrFile = szFileName; // c'est ici que ca passe pas

ofn.nMaxFile = MAX_PATH;

ofn.lpstrDefExt = TEXT(

"txt");}

Si quelqu'un connait la solution, ou pourrait me passer une méthode similaire qui marche, je lui serai trés reconnaissant, parce que là, c trop bète de perdre du temps sur un truc comme ca  (inutile de dire que c la première fois que j'utilise un OPENFILENAME). Je précise aussi que je code sous Visual C++ 2005.

Merci d'avance

3 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Mets TCHAR au lieu de CHAR.
On ne peut pas coder moitié ANSI moitié UNICODE, faut choisir.

ciao...
BruNews, MVP VC++
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
C'est que ton code compile en unicode. Passe en multibytes et tout devrais passer.

Projet->Propriétés de ...->Propriétés de configuration->Général->Jeu de caractères

C++ (@++)<!--
Messages postés
2
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
8 octobre 2007

Merci beaucoup pour vos réponses. Le coup du TCHAR s'est avéré trés efficace. J'ai pas encore essayé de compiler en multibytes.
Merci à vous deux
++