IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Conversions de chaines en pointeurs LPCSTR


Sujet :

C++

  1. #21
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Remplace LPTSTR par LPSTR.

    Et LPCTSTR par LPCSTR.

  2. #22
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    C'est fait... Récapitulons:
    - J'ai enlevé tous les UNICODES que j'ai pu trouver.
    - J'ai changé LPTSTR par LPSTR dans les parametres de winMain.
    - J'ai joujours les 2 MessageBox dans le code.

    J'ai 2 erreurs:
    error C2731: 'WinMain' : function cannot be overloaded See declaration of 'WinMain'
    error C2660: 'MessageBoxA' : function does not take 3 parameters

    Par contre, le 2ème MessageBox est passé.
    J'ai enlevé le premier et il ne reste que le winMain qui pose pb !
    David.

  3. #23
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    error C2731: 'WinMain' : function cannot be overloaded See declaration of 'WinMain'
    Le prototype correct est le suivant (trouvable sur la MSDN) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
    Si tu as des erreurs avec ça, c'est que tu as encore des options de compilation rebelles qui traînent.

    error C2660: 'MessageBoxA' : function does not take 3 parameters
    MessageBox prend en effet 4 paramètres (là encore, voir la MSDN)

  4. #24
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Que je mette LPTSTR ou LPSTR, ça plante.

    Elle est déclarée ou cette fonction d'entrée ?
    Elle n'est pas déclarée normalement !!!
    David.

  5. #25
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Bon,
    Même le minimum depuis un nouveau projet plante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include "stdafx.h"
     
    LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam);
     
     
    int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {
    	HWND hDlg;
    	hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
    	ShowWindow(hDlg,SW_SHOW);
    	MSG msg;
    	while(GetMessage(&msg,NULL,0,0)==TRUE) {
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    	return 0;
    }
     
    LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam) {
       int Select;
       switch(message) {
       case WM_COMMAND:
          Select=LOWORD(wParam);
          switch(Select) {
          case IDOK:
             EndDialog(Dlg,0);
             PostQuitMessage(0);
             return TRUE;
          case IDCANCEL:
             EndDialog(Dlg,Select);
             PostQuitMessage(0);
             return TRUE;
          }
       default:
          return FALSE;
       }
    }
    Je vais laisser tous les paramètres de l'IDE par défaut et m'adapter à l'unicode.

    Je reviens de ce fait à ma question de départ:
    Comment transformer une chaines en pointeur LPCSTR ?
    Et pourquoi le type String n'existe pas dans mon environnement ?

    Merci.
    David.

  6. #26
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est quoi l'erreur cette fois-ci ?

    Normalement, les macros LPxxxxx sont faites pour effectuer ces conversions - OK, mal, mais bon... -, donc ça devrait marcher.
    Ensuite, la raison pour laquelle tu n'as pas la classe String, faut demander à tes patrons !

  7. #27
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Ca a l'air méchant:
    fatal error C1010: unexpected end of file while looking for precompiled header directive

    Mais j'ai commenté l'inclusion à stdafx.h qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
    #define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
    Je ne sais pas si c'est important, en tous cas, si je le laisse, j'ai l'erreur:
    error C2731: 'WinMain' : function cannot be overloaded
    Comme si winMain était déclarée dedans alors que non !

    Sinon, as tu un exemple pour une conversion ?
    David.

  8. #28
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Hourra, j'ai trouvé une solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "Afx.h" // Pour CString
    CString strValue;
    strValue.Format(L"temp:%d",wmId); (...A QUOI SERT LE L ???)
    MessageBox(hWnd,strValue,_T("Info"),MB_OK);
    C'est tout de même dommage d'avoir tant de difficultés pour faire un truc aussi con !

    Merci à tous !
    David.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Conversion de type de pointeur
    Par didierl dans le forum C
    Réponses: 8
    Dernier message: 13/09/2006, 08h17
  2. [C#] Conversion de chaine
    Par Nico28 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2006, 13h03
  3. conversion une chaine numérique en lettre
    Par nazimb dans le forum ASP
    Réponses: 1
    Dernier message: 20/11/2005, 17h39
  4. conversion datetime-chaine de caracteres
    Par HULK dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/08/2005, 13h26
  5. Chaines et pointeurs mais pas "const"
    Par hpfx dans le forum C
    Réponses: 9
    Dernier message: 05/10/2003, 20h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo