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
Anonymous
unregistriert
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 |
class ddRelease { public: static ddRelease* Instance(); //Zeiger auf einzige Instanz zurückgeben SafeRelease(IUnknown** ppInterface); //Sicheres Beenden private: ddRelease() {} //Variablen static ddRelease *m_pInstance; //Zeiger auf einzige Instanz der Klasse }; |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <DayDreamer.h> //////////////////////////////////////////////////////////////////////// //Variablen initialisieren ddRelease* ddRelease::m_pInstance = 0; //////////////////////////////////////////////////////////////////////// //Zeiger auf einzige Instanz zurückgeben ddRelease* ddRelease::Instance() { if(m_pInstance == 0) //Instanz schon vorhanden? m_pInstance = new ddRelease(); //Nein. lege neue an return m_pInstance; //Ja. Gib die vorhandene zurück, bzw. die neu Angelegte } inline ddRelease::SafeRelease(IUnknown** ppInterface) { if(ppInterface != NULL) if(*ppInterface != 0) { (*ppInterface)->Release(); (*ppInterface) = 0; } } |
Quellcode |
|
1 2 |
ddRelease::Instance()->SafeRelease(&m_pD3D); ddRelease::Instance()->SafeRelease(&m_pD3DDevice); |
Zitat
--------------------Konfiguration: Kapitel2_Bsp3 - Win32 Debug--------------------
Kompilierung läuft...
ddD3D.cpp
\DayDreamer\ddD3D.cpp(113) : error C2664: 'SafeRelease' : Konvertierung des Parameters 1 von 'struct IDirect3D9 ** ' in 'struct IUnknown ** ' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
\DayDreamer\ddD3D.cpp(114) : error C2664: 'SafeRelease' : Konvertierung des Parameters 1 von 'struct IDirect3DDevice9 ** ' in 'struct IUnknown ** ' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.
Kapitel2_Bsp3.exe - 2 Fehler, 0 Warnung(en)
Administrator
Anonymous
unregistriert
Quellcode |
|
1 |
#define TB_SAFE_RELEASE(x) {if((x) != NULL) {(x)->Release(); (x) = NULL;}} // Sicheres Releasen eines COM-Objekts |
Anonymous
unregistriert
Quellcode |
|
1 2 |
ddRelease::Instance()->SafeRelease((IUnknown**)&m_pD3D); ddRelease::Instance()->SafeRelease((IUnknown**)&m_pD3DDevice); |
Zitat
--------------------Konfiguration: Kapitel2_Bsp3 - Win32 Debug--------------------
Kompilierung läuft...
ddD3D.cpp
Linker-Vorgang läuft...
ddD3D.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: int __thiscall ddRelease:afeRelease(struct IUnknown * *)" (?SafeRelease@ddRelease@@QAEHPAPAUIUnknown@@@Z)
Debug/Kapitel2_Bsp3.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Kapitel2_Bsp3.exe - 2 Fehler, 0 Warnung(en)
Administrator
Anonymous
unregistriert
Administrator
Zitat von »"Miguel"«
Warum eigentl. nicht nur ein Makro nehmen?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class ddRelease { public: void SafeRelease(IUnknown** ppInterface) { if(ppInterface) { if(*ppInterface) { (*ppInterface)->Release(); (*ppInterface) = 0; } } } ... }; |
Anonymous
unregistriert
Zitat
ddMatrix.obj : error LNK2001: Nichtaufgeloestes externes Symbol _D3DXMatrixPerspectiveFovLH@20
Debug/Kapitel2_Bsp3.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Kapitel2_Bsp3.exe - 2 Fehler, 0 Warnung(en)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 |
ddMatrix ddMatrix::Projection(const float &fFOV, const float &fAspect, const float &fNearPlane, const float &fFarPlane) { ddMatrix mTmp; D3DXMatrixPerspectiveFovLH((D3DXMATRIX*)(&mTmp), fFOV, fAspect, fNearPlane, fFarPlane); return mTmp; } |
Quellcode |
|
1 2 |
ddMatrix mProjection; mProjection = mProjection.Projection(DD_DEG_TO_RAD(90.0f),nfAspect, 0.1f, 100.0f); |
Anonymous
unregistriert
Werbeanzeige