DirectX8 mit C ?
-
Hi
wiso geht das nicht ?D3DDISPLAYMODE d3ddm; g_pD3D = Direct3DCreate8(D3D_SDK_VERSION); g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);error C2039: 'GetAdapterDisplayMode' : is not a member of 'IDirect3D8' see declaration of 'IDirect3D8'brauch ich speziele C header ?
- Sry falsches forum, wäre nett wenn das ein mod in Spieleprogrammierung verschieben könnte - danke
Gruss Tony
-
Ich tippe einfach mal darauf, dass du p_gD3D falsch definierst, sollte so sein:
IDirect3D8 *g_pD3D;
-
bluecode schrieb:
Ich tippe einfach mal darauf, dass du p_gD3D falsch definierst, sollte so sein:
IDirect3D8 *g_pD3D;ja so mach ich das auch, stehe nicht so wirklich auf versteckte pointer aliases

verstehs einfach nicht, in der dokumentation steht "C/C++"
habs auch schon so versucht:(*g_pD3D).GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);was ja das gleiche ist - bei C weiß man ja nie

-
TonyM schrieb:
brauch ich speziele C header ?
Compiler schrieb:
see declaration of 'IDirect3D8'
MSDN schrieb:
Requirements
Header: D3d8.h
Link Library: D3d8.libHast Du Header und Library?
-
TonyM schrieb:
habs auch schon so versucht:
(*g_pD3D).GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);was ja das gleiche ist - bei C weiß man ja nie

Hat das denn funktioniert?
-
danke für eure bemühungen bis hierhin schonmal

1310-Logik schrieb:
TonyM schrieb:
brauch ich speziele C header ?
Compiler schrieb:
see declaration of 'IDirect3D8'
MSDN schrieb:
Requirements
Header: D3d8.h
Link Library: D3d8.libHast Du Header und Library?
klar wenn ich als cpp compile dann gehts auch, nur als reines c nicht

bluecode schrieb:
Hat das denn funktioniert?
leider auch die gleiche fehlerausgabe.
ich habe grade folgendes in der doku gefunden:
The sample files in these tutorials are written in C++. If you are using a C compiler, you must make the appropriate changes to the files for them to successfully compile. At the very least, you need to add the vtable and this pointers to the interface methods.
also ich hätte jetzt gesagt das die sample files geändert werden müssen,
aber das kann nicht sein.
deswegen stellt sich jetzt die frage: was genau ist eine vtable? und was interface methoden? - also müsste man doch die header ändern?
gruss Tony
-

http://www.gamedev.net/community/forums/topic.asp?topic_id=319558Endurion schrieb:
Are you per chance writing this code inside a .c file (instead of .cpp)?
AFAIK DirectX has a fallback to calling macros with a faked vtable when you're using plain C.Lösung hab ich noch keine gefunden, aber vielleicht hilft Dir das?
-
Google Groups->error+C2039+C+DirectX
und suche noch weiter...
-
Super Danke!
habs jetzt die betroffne zeile gändert in:IDirect3D8_GetAdapterDisplayMode(g_pD3D, D3DADAPTER_DEFAULT, &d3ddm);dann gehts
ich habs auch schon vorher so probiert allerdings hatte ich das so:g_pD3D->IDirect3D8_GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);nah dran aber jetzt gehts ja

Gruss Tony
-
OO in C

-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.