Announcement

Collapse
No announcement yet.

DirectX: Probleme mit Parameterumwandlung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DirectX: Probleme mit Parameterumwandlung

    Hallo.
    Ich versuchte, eine Funktion zu schreiben, welche eine Textur aus einer beliebigen Datei lädt und dann als Sprite anzeigt.
    Das Problem: Die Konvertierung von char* in LPCWSTR.


    ( Hier wird nur der Codeteil zum Laden der Textur angezeigt... )
    Code:
    void init(HWND hWnd, LPDIRECT3DDEVICE9 device, char* texturename, D3DCOLOR color)
    {		
    	D3DSURFACE_DESC dsc;
    	D3DXCreateSprite(device, &spr);			
    	D3DXCreateTextureFromFileEx(device, texturename, 0, 0, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, color, NULL, NULL, &texture);
    			
    	texture->GetLevelDesc(0, &dsc);
    	h=dsc.Height;
    	b=dsc.Width;
    }
    Ich bin mir nicht ganz sicher, wie man einen CSTRING nach LPCWSTR konvertiert.
    Generell habe ich für die dutzenden unterschiedlichen Typen/Typedefs keinerlei Verständnis.
    In den Begleitbüchern, die ich zum Thema Spieleprogrammierung lese steht von LPCWSTR kein Wort.
    Dort wird reibungslos char* verwendet.


    Danke für jede Hilfe.

  • #2
    Was nun char oder CString?

    Und was erwartet 3DXCreateTextureFromFileEx?
    Christian

    Comment


    • #3
      Von char* zu LPCWSTR.

      D3DXCreateTextureFromFileEx ertwarte nämlich als 2. Parameter LPCWSTR und nicht char*. Das ist mein Problem.

      Comment


      • #4
        char[] ansistr = "abc";
        int len = MultiByteToWideChar(CP_ACP, 0, ansistr, a, NULL, 0);
        LPWSTR unicodestr = (LPWSTR)malloc(len);
        MultiByteToWideChar(CP_ACP, 0, ansistr, a, unicodestr, len);
        free() nicht vergessen!
        Christian

        Comment

        Working...
        X