Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

01.10.2007, 19:12

Brauche Hilfe beim Ersten Beispiel Programm

Hi zusammen,
also ich benötige mal eure Hilfe bei den ersten Beispielprogramm aus den Buch .

Also ich hab folgendes Problem, bei diesem Quelcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
    PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    if(!pD3D)
    {
        MessageBox(NULL, "Fehler beim Erzeugen der Direct3D-Schnetstelle!",
                    "Fehler", MB_OK | MB_ICONEXCLAMATION);  //Fehler

        return 1;
    }


Ich bekomm jedes mal beim Compilieren folgende Fehlermeldung:

Quellcode

1
2
3
4
5
error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [48]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.[cpp]
Ich hab das genau wie im buch abgetippt, aber ich bekomm diese fehlermeldung.

Danke Schonmal für eure Hilfe.[/cpp]

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

2

01.10.2007, 19:54

1. Forensuche, dieses Probrlem gabs sicheerlich schon öfters
2. falls nicht: MessageBoxA() bzw. ,L"Fehler beim Erzeugen...",

ich hoffe das war aus dem stegreif so richtig ;)
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

xCite

Frischling

Beiträge: 77

Wohnort: Deutschland

Beruf: Berufsfachschüler

  • Private Nachricht senden

3

01.10.2007, 19:54

[01.10.2007 - 19:36:05] babelfish: weiss jemand einen Algo um witzige Sprüche zu erkennen? will das einbauen xD
[01.10.2007 - 19:36:07] |bubble|: War diese Frage ernst gemeint?!?

(Insider!) xD

P.S.: goto ruleZ! :D

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

4

01.10.2007, 20:13

Re: Brauche Hilfe beim Ersten Beispiel Programm

Möglichkeit 1:

C-/C++-Quelltext

1
2
3
4
5
6
7
    PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    if(!pD3D)
    {
        MessageBox(NULL, L"Fehler beim Erzeugen der Direct3D-Schnetstelle!",
                    L"Fehler", MB_OK | MB_ICONEXCLAMATION); //Fehler

        return 1;
    }


man beachte das L vor dem text.

2:
Möglichkeit 2:

C-/C++-Quelltext

1
2
3
4
5
6
7
    PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    if(!pD3D)
    {
        MessageBoxA(NULL, "Fehler beim Erzeugen der Direct3D-Schnetstelle!",
                    "Fehler", MB_OK | MB_ICONEXCLAMATION);  //Fehler

        return 1;
    }


Einfach MessageBoxA verwenden.

//Edit: EIn paar miese Fehler beseitigt...

Socke

5

24.11.2007, 16:53

Hi danke für die Antwort hatte das gleiche Problem ..... hab da noch ne Frage warum funktioniert das so wies im Buch steht nicht und wenn es kein Tippfehler im Buch war ... Warum tuts bei Manchen und bei Anderen nicht??


Danke schonmal und Grüße

Timon

Nico

Frischling

Beiträge: 82

Wohnort: Nürnberg

  • Private Nachricht senden

6

24.11.2007, 17:04

Zitat von »"Timon"«

Hi danke für die Antwort hatte das gleiche Problem ..... hab da noch ne Frage warum funktioniert das so wies im Buch steht nicht und wenn es kein Tippfehler im Buch war ... Warum tuts bei Manchen und bei Anderen nicht??


Danke schonmal und Grüße

Timon


Weil die Projekteinstellung "Unicode verwenden" erst ab VC 2005 Standard ist.
Aber btw ist MessageBoxA direkt zu verwenden keine gute Idee. Das nimmt der Idee mit A/W -> Makro die Portabilität. Dann doch eher gleich wieder auf Multibyte umstellen. Und L davorschreiben würde ich auch nicht xD.
Wofür gibts _T()??

C-/C++-Quelltext

1
2
3
#include <tchar.h>

MessageBox(NULL, _T("Test"), _T("Fehler!"), MB_ICONERROR);

7

24.11.2007, 17:15

Ah ok ... naja das tut jetz :D Danke

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

8

24.11.2007, 18:41

Wenn du dir mal anschaust, wie MessageBox definiert ist, findest du es warscheinlich schnell raus wieso.

Socke

Werbeanzeige