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

DX9

unregistriert

1

17.01.2008, 15:15

Fehler beim Aufrufen von MessageBox

Hallo,
ich wollte gerade das erste Programm testen, dass die ganzen Adapters
auflistet. Aber bei mir kommt jetzt 4mal der foolgende Fehler:

Quellcode

1
2
.\main.cpp(22) : error C2664: 'MessageBox': Konvertierung des Parameters 2 von 'const char [51]' in 'LPCTSTR' 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.


Weiss jemand was ich falsch gemacht habe???

PS: Im Kapitel steht man soll die D3D9.lib zum Projekt dazu linken.
Hat man das nicht schon in Kapitel 1 gemacht???

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

17.01.2008, 15:32

also da findest du echt viel im forum. aba da ich ein geduldiger emnsch bin, sag ich dir es liegt am zeichensatz, er will unicode, gibst ihm aba ascii.

project -> properties -> c++ -> general -> Use Charset -> not set.

DX9

unregistriert

3

17.01.2008, 15:44

Kannst du es mir auch für die deutsche Version sagen???????

4

17.01.2008, 16:15

Projekt - Eigenschaften - Konfigurationseigenschaften - Allgemein - Zeichensatz -> Nicht festgelegt

DX9

unregistriert

5

17.01.2008, 17:02

Danke! Die Errors mit der MessageBox sind weg, aber jetzt gibt es solche
Errors:

Quellcode

1
2
3
4
5
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000017) ""extern "C" struct IDirect3D9 * __stdcall Direct3DCreate9(unsigned int)" (?Direct3DCreate9@@$$J14YGPAUIDirect3D9@@I@Z)", auf das in Funktion ""extern "C" int __stdcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J216YGHPAUHINSTANCE__@@0PADH@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000027) ""extern "C" int __stdcall MessageBoxA(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBoxA@@$$J216YGHPAUHWND__@@PBD1I@Z)", auf das in Funktion ""extern "C" int __cdecl MessageBox(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBox@@$$J0YAHPAUHWND__@@PBD1I@Z)" verwiesen wird.
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall MessageBoxA(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBoxA@@$$J216YGHPAUHWND__@@PBD1I@Z)" in Funktion ""extern "C" int __cdecl MessageBox(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBox@@$$J0YAHPAUHWND__@@PBD1I@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct IDirect3D9 * __stdcall Direct3DCreate9(unsigned int)" (?Direct3DCreate9@@$$J14YGPAUIDirect3D9@@I@Z)" in Funktion ""extern "C" int __stdcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J216YGHPAUHINSTANCE__@@0PADH@Z)".
1>C:\Users\Jojo\Documents\Visual Studio 2005\Projects\kjh\Debug\DirectX Projekt.exe : fatal error LNK1120: 4 nicht aufgelöste externe Verweise.


Weiss jemand was ich da machen muss???

6

17.01.2008, 17:17

Hast du die User32.lib zu deinem Projekt hinzugefügt?
(Projekteigenschaften - Linker - Eingabe -> Zusätzliche Abhängigkeiten)
Die Meldung "Verweis auf nicht aufgelöstes externes Symbol" besagt meistens, daß irgendwelche Libraries fehlen. Oder daß du eine Header-Datei (.h) eingebunden hast, aber nicht die Implementierungsdatei (.cpp)

DX9

unregistriert

7

17.01.2008, 18:14

Jetzt funktioniert es. Was ist denn das für eine lib????

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

17.01.2008, 18:17

Zitat von »"DX9"«

Jetzt funktioniert es. Was ist denn das für eine lib????


Die jenige in der sich z.B. das Kompilat der Funktion MessageBoxA befindet, welches zwangsläufig, aufgrund der Verwendung deinerseits, verfügbar sein muss für dein Programm.
@D13_Dreinig

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

17.01.2008, 18:38

Zitat von »"David_pb"«

Die jenige in der sich z.B. das Kompilat der Funktion MessageBoxA befindet, welches zwangsläufig, aufgrund der Verwendung deinerseits, verfügbar sein muss für dein Programm.

Nee, diese .lib importiert die Funktion aus der entsprechenden DLL-Datei von Windows. Da ist das eigentliche Kompilat.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

17.01.2008, 21:55

Zitat von »"David Scherfgen"«

Zitat von »"David_pb"«

Die jenige in der sich z.B. das Kompilat der Funktion MessageBoxA befindet, welches zwangsläufig, aufgrund der Verwendung deinerseits, verfügbar sein muss für dein Programm.

Nee, diese .lib importiert die Funktion aus der entsprechenden DLL-Datei von Windows. Da ist das eigentliche Kompilat.


Da hast du natürlich recht! Solche flüchtigkeitsfehler passieren halt wenn man kurz vor Dienstschluss, wärend der Rechner quasi am runterfahren ist, noch einen Post schreibt! ;)
@D13_Dreinig

Werbeanzeige