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

DirectX Discussion :

[DirectX c++] impossible de convertir de 'const wchar_t [12]' en 'LPCSTR'


Sujet :

DirectX

  1. #1
    Membre du Club Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Points : 67
    Points
    67
    Par défaut [DirectX c++] impossible de convertir de 'const wchar_t [12]' en 'LPCSTR'
    Bonjour, je suis un gros débutant en directx et j'ai besoin de votre aide svp.
    Voilà la source de mon code (honteusement pêchée sur directxtutorial.com) :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    #include <windows.h>
    #include <windowsx.h>
    #include <d3d9.h>
     
    // include the Direct3D Library file
    #pragma comment (lib, "d3d9.lib")
     
    // global declarations
    LPDIRECT3D9 d3d;    // the pointer to our Direct3D interface
    LPDIRECT3DDEVICE9 d3ddev;    // the pointer to the device class
     
    // function prototypes
    void initD3D(HWND hWnd);    // sets up and initializes Direct3D
    void render_frame(void);    // renders a single frame
    void cleanD3D(void);    // closes Direct3D and releases memory
     
    // the WindowProc function prototype
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
     
     
    // the entry point for any Windows program
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine,
                       int nCmdShow)
    {
        HWND hWnd;
        WNDCLASSEX wc;
     
        ZeroMemory(&wc, sizeof(WNDCLASSEX));
     
        wc.cbSize = sizeof(WNDCLASSEX);
        wc.style = CS_HREDRAW | CS_VREDRAW;
        wc.lpfnWndProc = (WNDPROC)WindowProc;
        wc.hInstance = hInstance;
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
        wc.lpszClassName = L"WindowClass";
     
        RegisterClassEx(&wc);
     
        hWnd = CreateWindowEx(NULL,
                              L"WindowClass",
                              L"Our First Direct3D Program",
                              WS_OVERLAPPEDWINDOW,
                              300, 300,
                              640, 480,
                              NULL,
                              NULL,
                              hInstance,
                              NULL);
     
        ShowWindow(hWnd, nCmdShow);
     
        // set up and initialize Direct3D
        initD3D(hWnd);
     
        // enter the main loop:
     
        MSG msg;
     
        while(TRUE)
        {
            DWORD starting_point = GetTickCount();
     
            if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
            {
                if (msg.message == WM_QUIT)
                    break;
     
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
     
            render_frame();
     
            while ((GetTickCount() - starting_point) < 25);
        }
     
        // clean up DirectX and COM
        cleanD3D();
     
        return msg.wParam;
    }
     
     
    // this is the main message handler for the program
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch(message)
        {
            case WM_DESTROY:
                {
                    PostQuitMessage(0);
                    return 0;
                } break;
        }
     
        return DefWindowProc (hWnd, message, wParam, lParam);
    }
     
     
    // this function initializes and prepares Direct3D for use
    void initD3D(HWND hWnd)
    {
        d3d = Direct3DCreate9(D3D_SDK_VERSION);    // create the Direct3D interface
     
        D3DPRESENT_PARAMETERS d3dpp;    // create a struct to hold various device information
     
        ZeroMemory(&d3dpp, sizeof(d3dpp));    // clear out the struct for use
        d3dpp.Windowed = TRUE;    // program windowed, not fullscreen
        d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    // discard old frames
        d3dpp.hDeviceWindow = hWnd;    // set the window to be used by Direct3D
     
     
        // create a device class using this information and the info from the d3dpp stuct
        d3d->CreateDevice(D3DADAPTER_DEFAULT,
                          D3DDEVTYPE_HAL,
                          hWnd,
                          D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                          &d3dpp,
                          &d3ddev);
     
        return;
    }
     
     
    // this is the function used to render a single frame
    void render_frame(void)
    {
        // clear the window to a deep blue
        d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 40, 100), 1.0f, 0);
     
        d3ddev->BeginScene();    // begins the 3D scene
     
        // do 3D rendering on the back buffer here
     
        d3ddev->EndScene();    // ends the 3D scene
     
        d3ddev->Present(NULL, NULL, NULL, NULL);   // displays the created frame on the screen
     
        return;
    }
     
     
    // this is the function that cleans up Direct3D and COM
    void cleanD3D(void)
    {
        d3ddev->Release();    // close and release the 3D device
        d3d->Release();    // close and release Direct3D
     
        return;
    }
    Et ça me met :
    1>------ Début de la génération : Projet : dirtext, Configuration : Debug Win32 ------
    1>Compilation en cours...
    1>main.cpp
    1>c:\users\wrai\desktop\dirtext\dirtext\main.cpp(38) : error C2440: '=' : impossible de convertir de 'const wchar_t [12]' en 'LPCSTR'
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    1>c:\users\wrai\desktop\dirtext\dirtext\main.cpp(51) : error C2664: 'CreateWindowExA' : impossible de convertir le paramètre 2 de 'const wchar_t [12]' en 'LPCSTR'
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\wrai\Desktop\dirtext\dirtext\Debug\B*uildLog.htm"
    1>dirtext - 2 erreur(s), 0 avertissement(s)
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========


    Comment corriger ces erreurs s'il vous plait ?

    Merci d'avance,

  2. #2
    Membre du Club Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Points : 67
    Points
    67
    Par défaut
    Mince je viens de trouver il suffisait de remplacer : Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reinterpret_cast<LPCSTR>("WindowClass")

  3. #3
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Valter Voir le message
    Mince je viens de trouver il suffisait de remplacer : Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reinterpret_cast<LPCSTR>("WindowClass")
    Le plus simple est de configurer ton projet Visual Studio pour qu'il utilise les caractères Unicode.
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  4. #4
    Membre du Club Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Points : 67
    Points
    67
    Par défaut
    Le plus simple est de configurer ton projet Visual Studio pour qu'il utilise les caractères Unicode.
    Heuu... Je vois pas trop comment faire. C'est dans préférences ?

    Merci

  5. #5
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Valter Voir le message
    Heuu... Je vois pas trop comment faire. C'est dans préférences ?

    Merci
    http://www.developpez.net/forums/d46...ple-ne-marche/
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  6. #6
    Membre du Club Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Points : 67
    Points
    67
    Par défaut
    Alors moi c'était déjà sur MBCS et en choix je n'ai que :
    - MBCS
    - Unicode

    Petite précision : je suis sous Express Edition 2008

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/03/2010, 10h35
  2. Réponses: 4
    Dernier message: 25/02/2010, 15h22
  3. Réponses: 3
    Dernier message: 18/06/2009, 18h30
  4. Réponses: 1
    Dernier message: 28/03/2009, 18h23
  5. Réponses: 1
    Dernier message: 10/08/2007, 11h57

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