Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2540 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [MFC] CString en argument d'une méthode > LPCTSTR

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] CString en argument d'une méthode > LPCTSTR

n°428900
antsite
Je me souviens
Posté le 16-06-2003 à 11:32:37  profilanswer
 

Salut, pourquoi ce code compile mais quand l'éxécute plante?
J'ai lu dans la doc qu'il vaut mieux MaMethode(LPTCTSTR c) que MaMethode(CString c) donc c'est ce que je fait...
 
CString s;

Code :
  1. void CMaClasse::MaMethode(LPCTSTR c)
  2. {
  3. if(c == s)
  4. ...
  5. }


 
comment faire pour passer en argument une CString donc? LPCTSTR?
merci
   ANT

mood
Publicité
Posté le 16-06-2003 à 11:32:37  profilanswer
 

n°428918
El_gringo
Posté le 16-06-2003 à 11:37:12  profilanswer
 

J'te conseillerai :

Code :
  1. void CMaClasse::MaMethode(const CString& _krMaChaine)
  2.   {
  3.      if (_krMaChaine == s)
  4.      
  5.     ...
  6.   }


 
& pour indiquer un passage par référence
const pour reproduire la "non modification" du contenu de la chaine (constance assurée également quand on fait un passage par un pointeur de type LPCTSTR)


Message édité par El_gringo le 16-06-2003 à 11:38:44
n°428922
VisualC++
J'va y penser ...
Posté le 16-06-2003 à 11:38:34  profilanswer
 

CString :: operator LPCTSTR ( ) const;


 

Code :
  1. obj.MaMethode((LPCTSTR) maCString);


Message édité par VisualC++ le 16-06-2003 à 11:38:54
n°428926
antsite
Je me souviens
Posté le 16-06-2003 à 11:39:42  profilanswer
 

Oui en plus je viens de voir que l'erreur venait d'ailleurs  :whistle:  
Mais alors à quoi servent LPCSTR et cie par rapport a CString classique? Question de format (unicode,...) ?

n°428930
VisualC++
J'va y penser ...
Posté le 16-06-2003 à 11:40:43  profilanswer
 

LPCSTSTR ca fait un char* a la fin (omission faite des const on va dire), CString c un objet complet.

n°428972
El_gringo
Posté le 16-06-2003 à 11:57:00  profilanswer
 

VisualC++ a écrit :

LPCSTSTR ca fait un char* a la fin (omission faite des const on va dire), CString c un objet complet.


 
Mais je n'vois pas l'intéret de bosser sur un LPCTSTR, sachant qu'on peut profiter de toutes les méthodes d'une CString, et ce, sans la copier bien sur (juste en copiant se référence).

n°428974
antsite
Je me souviens
Posté le 16-06-2003 à 11:58:26  profilanswer
 

:jap:  
 
Une autre question:
Visual me crée automatiquement une classe CAboutDlg correspondant à la boîte de dialogue A Propos.
J'aimerais dans le MonAppDlg.h ajouter à la classe CMonAppDlg ça:
CAboutDlg *about;
 
mais ça ne compile pas parce que le .h ne sait pas ce qu'est CAboutDlg qui est définie dans MonAppDlg.cpp. Comment faire pour déclarer mon pointeur dans ma classe?

n°428975
VisualC++
J'va y penser ...
Posté le 16-06-2003 à 11:59:48  profilanswer
 

El_gringo a écrit :


 
Mais je n'vois pas l'intéret de bosser sur un LPCTSTR, sachant qu'on peut profiter de toutes les méthodes d'une CString, et ce, sans la copier bien sur (juste en copiant se référence).


 
mais j ai pas dit que j ete pour le lpctstr, effectivement si il fait du MFC un CString& c bien plus pratique

n°428977
VisualC++
J'va y penser ...
Posté le 16-06-2003 à 12:00:49  profilanswer
 

ANTSite a écrit :

:jap:  
 
Une autre question:
Visual me crée automatiquement une classe CAboutDlg correspondant à la boîte de dialogue A Propos.
J'aimerais dans le MonAppDlg.h ajouter à la classe CMonAppDlg ça:
CAboutDlg *about;
 
mais ça ne compile pas parce que le .h ne sait pas ce qu'est CAboutDlg qui est définie dans MonAppDlg.cpp. Comment faire pour déclarer mon pointeur dans ma classe?
 


 
fait un

Code :
  1. class CAboutDlg;
  2. class CmonAppDlg {
  3. .....
  4. };


 
il devrait se debrouiller a la compile

n°428979
El_gringo
Posté le 16-06-2003 à 12:02:22  profilanswer
 

ANTSite a écrit :

:jap:  
 
Une autre question:
Visual me crée automatiquement une classe CAboutDlg correspondant à la boîte de dialogue A Propos.
J'aimerais dans le MonAppDlg.h ajouter à la classe CMonAppDlg ça:
CAboutDlg *about;
 
mais ça ne compile pas parce que le .h ne sait pas ce qu'est CAboutDlg qui est définie dans MonAppDlg.cpp. Comment faire pour déclarer mon pointeur dans ma classe?
 


 
Dans le .h, avant la déclaration de ta classe CMonAppDlg, essaye de mettre  
public class CAboutDlg;

mood
Publicité
Posté le 16-06-2003 à 12:02:22  profilanswer
 

n°429096
antsite
Je me souviens
Posté le 16-06-2003 à 13:07:15  profilanswer
 

nickel! merci à tous les 2!
 
PS: je suis le boolay de personne, si ça vous intéresse, je pense que ça serait justifié ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [MFC] CString en argument d'une méthode > LPCTSTR

 

Sujets relatifs
[MFC] CTreeCtrl > NMTREEVIEW avec OnSelChange...[MFC] Tri special
Meilleure méthode pour utiliser un vecteur dans une fonction[VBA Excel] Quand un une proprièté ou une méthode peut échouer?
méthode.. panier de boutique en ligne[MFC] - debutant
application MFC -> pour parcourir qque chose...[MFC] CStatusBar*
[MFC VC++6] Erreur de link... [résolu][MFC VC++6]Mettre en barre de tache au démarrage...[résolu]
Plus de sujets relatifs à : [MFC] CString en argument d'une méthode > LPCTSTR


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR