JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=deaba5c21e2377ed80a54e36651defa7Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

CreateSurfaceFromBitmap, einmal funzts einmal nich...

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 14:04    Titel: CreateSurfaceFromBitmap, einmal funzts einmal nich... Antworten mit Zitat

Hi!
Ich hab probleme mit der Funktion: CreateSurfaceFromBitmap.
In manchen Projekten von mir funktioniert es, in anderen nicht.
An der Stelle
Code:


if(FAILED(Surface->GetDC(&SurfaceDC)))
{
PostQuitMessage(0);
}



wird der Debug Modus beendet und der Compiler meldet folgendes:
"C:\WINDOWS\SYSTEM\OLE32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\VERSION.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\NTDLL.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DDRAW.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\GDI32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\USER32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\ADVAPI32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\KERNEL32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DINPUT8.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\IMAGEHLP.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\RPCRT4.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\MSASN1.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\CRYPT32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\MSVCRT.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\WINTRUST.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\MSCAT32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\RSAENH.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\COMCTL32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\SHLWAPI.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\SHELL32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\HID.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\CFGMGR32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\CABINET.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\WINSPOOL.DRV" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\MPR.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\LZ32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\COMDLG32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\SETUPAPI.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\WINMM.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DSOUND.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DMIME.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DMLOADER.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\MSACM32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DMUSIC.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\KSUSER.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DMUSIC32.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\SYSTEM\DMSYNTH.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

(Sorry, dass das so viel ist )
Dann sagt er noch, dass ein paar Threads mit dem Fehlercode -1 beendet wurden.

Hat einer von euch ne Ahnung?

PS:
Hat auch auf anderen PC´s nich gefunzt.


Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 15:53    Titel: Antworten mit Zitat

Ich weiß zwar so jetzt auch nicht wodran das liegt, aber du könntest das herausfinden, indem du dir den Rückgabewert von GetDC() anschaust und mit Hilfe von DirectX Error Lookup den Fehlergrund herausfindest. Error Lookup ist bei der DXSDK dabei und zeigt zu einem Hexadezimalen Fehlercode die entsprechende Fehlermeldung an.
Ansonsten könntest du noch unter Systemsteuerung->DirectX->Direct3D das Debug Output Level erhöhen. Dann gibt der dir in der Ausgabe noch ein paar mehr Informationen.
_________________
www.messiahzone.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 15:55    Titel: Antworten mit Zitat

Wie soll ich mir den ankucken? Der Debugger beendet das alles sobald die Zeile ausgeführt wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 16:49    Titel: Antworten mit Zitat

Komisch es hat nach ein paar versuchen doch geklappt den Wert zu kriegen, aber ich werd daraus net schlau: -2005532087
Sowas kann ich nirgendwo finden!

Hilft das jemandem weiter?

Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 16:52    Titel: Antworten mit Zitat

Das ist ein typischer Rückgabewert, wenn ein Fehler aufgetreten ist. Mache eine select case-Abfrage und teste den Wert - es ist ein D[X]ERR_* - Wert. Unter der Beschreibung des Passenden Wertes findest du dann die Fehleranalyse.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 17:10    Titel: Antworten mit Zitat

Sorry, kannst du das mal in ne idiotensichere Anleitung übersetzen?
Kenn mich mit fehler und fehlerbehebung nich so aus, hatte bis jetzt (zum Glück) noch nich so arg viele Wink .

Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 17:57    Titel: Antworten mit Zitat

1. Windows-Taschenrechner öffnen
2. Ansicht->Wissenschaftlich
3. -2005532087 eingeben
4. Optionsfeld Hex wählen
5. Strg-C
6. Start->Ausführen->MS DirectX8.x SDK->DirectX Utilities->DirectX Error Lookup
7. Fokus auf das Eingabefeld
8. Strg-V
9. Alt-L

Und, Hokus Pokus, das Programm spuckt folgende Fehlermeldung aus:

HRESULT: DDERR_CANTCREATEDC
Description: Windows can not create any more DCs, or a DC was requested for a paltte-indexed surface when the surface had no palette AND the display mode was not palette-indexed (in this case DirectDraw cannot select a proper palette into the DC)
_________________
www.messiahzone.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 17:59    Titel: Antworten mit Zitat

VerruecktesHuhn hat Folgendes geschrieben:
Wie soll ich mir den ankucken? Der Debugger beendet das alles sobald die Zeile ausgeführt wird.

Der Debugger beendet zwar das Programm, aber er löscht ja nicht die Ausgabe, deshalb sollte da etwas über den Fehler drin stehen.
_________________
www.messiahzone.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 11.11.2002, 18:53    Titel: Antworten mit Zitat

Danke!
Der Compiler gab da ja das aus, was ich oben gepostet hab (Symbol nicht gefunden und so) .
Hat jemand ne Idee wie man den Fehler beheben könnte, mein Display Mode ist 1024x768x32 , aber bei anderen Programmen verwende ich den auch und hab keine Probleme damit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 12.11.2002, 09:51    Titel: Antworten mit Zitat

Alle Zeilen, wo irgendwelche Symbole nicht gefunden wurden sind keine Fehlermeldungen, die die Lauffähigkeit des Programmes beeinträchtigen, sondern Statusmeldungen vom Debugger die ungefär folgendes bedeuten:

Ich habe die Dll "xyz" geladen, aber es sind keine Funktionen in der Dll enthalten, die ich hier benötige. Wie du ja sicherlich erkennst sind die Dll's alle aus dem Systemverzeichnis von WIndows. Die angeführten Dll's werden von fast jedem Programm geladen, weil diverse Systemfunktionen dort abgelegt sind, die vielleicht nur Indirekt mit deinem Programm etwas zu tun haben.

Viel Interessanter ist es, das Threads mit einem Negativen Fehlercode beendet werden, denn das weist in der Regel auf einen Programmierfehler von deiner Seite hin.

Die Fehlermeldung DDERR_CANTCREATEDC weist darauf hin, das keine DeviceKontexte (mehr) erstellt werden können - sehr wahrscheinlich, weil du an irgendeiner Stelle vergisst, zugewiesene DC's wieder freizugeben. Ein DC verbraucht immer enorm viel Speicherplatz im RAM, deshalb ist die Anzahl der DC's von Windows streng begrenzt - Frag mich nicht, ich denke mal auf 256 Stück

Ich hoffe, ich konnte ein wenig Licht ins Dunkel bringen

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 12.11.2002, 10:52    Titel: Antworten mit Zitat

Es liegt nicht am Licht, sondern wahrscheinlich daran dass ich eine zu dicke Sonnenbrille auf hab Cool

Das klingt alles sehr einleuchtend, aber das Problem liegt nicht am freigeben der DC´s, weil es nähmlich der erste ist, den ich überhaupt anfordere, und weil der in der selben Funktion wieder freigegeben wird.

Trotzdem Danke!
Sonzt ne Idee?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum