Aktuelle Zeit: 19.06.2013 13:54

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 16:24 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
Hallo,


ich wollte ein paar Screen-Codes testen und mir ist aufgefallen, dass jedesmal die folgende Fehlermeldung erscheint:
Fehlerbericht hat geschrieben:
[16:14:10] [ERROR] Die angegebene Ausgabe ist NULL (0 Wert).

Und zwar meckert er in der folgenden Zeile:
Code:
If StartDrawing(ScreenOutput())


ich verwende die Version 4.60 (x86) und hier ein Beispiel-Code:
Code:
EnableExplicit

InitSprite()
InitKeyboard()

If OpenScreen(1024,768,32,"Screen")
 
  Repeat
    FlipBuffers()
    ClearScreen(RGB(0,0,0))
   
    If StartDrawing(ScreenOutput())
      DrawText(100,100,"Hallo",RGB(255,255,255),RGB(0,0,0))
     
      StopDrawing()
    EndIf
   
    ExamineKeyboard()
   
    If KeyboardReleased(#PB_Key_Escape)
      End
    EndIf
   
  ForEver
EndIf


Dieser Code hat bei mir immer funktioniert und auch alle anderen Codes, die ich besitze, haben funktioniert, aber warum mit dieser PB-Version nicht mehr? Hat sich da was geändert oder was mache ich grundsätzlich falsch? Oder ist das ein Bug?

PS: Library Subsystem ist bei mir leer.

Ich hoffe, ihr könnt mir helfen.

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 16:35 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Ich würde sagen, das ist ein Bug in Deinem Windows-System, Code läuft hier einwandfrei!

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 17:24 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
Wenn ich bei Library Subsystem "DirectX7" eingebe, dann funktioniert es. :roll:
Wenn nichts eingegeben wurde, was nimmt er denn standardmäßig?

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 17:29 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
DirectX 9!
http://www.microsoft.com/downloads/de-d ... 6652cd92a3

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 18:28 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
@ts-soft
Teste ich nachher, aber wenn man DX11 hat, dann hat man doch auch die Dateien aus DX9 oder nicht?

So nun konnte ich das Problem endlich mal eingrenzen. Es liegt am Multi-Monitor. Ich habe testweise (Win + P) nur auf meinen primären Monitor geschaltet und der Code funktioniert! Warum klappt es nicht, wenn mehrere Monitore aktiv sind? Mein Beispiel-Screen wird doch eh nur auf dem 1. Monitor angezeigt.
:?

@All
Kann jemand bitte, der zwei Monitore besitzt, den Code testen?

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 18:42 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
RSBasic hat geschrieben:
@ts-soft
Teste ich nachher, aber wenn man DX11 hat, dann hat man doch auch die Dateien aus DX9 oder nicht?

Nein, dann hat man eben nicht alle erforderlichen Dateien für DX9. DX9 sollte man zusätzlich Installieren, ansonsten
laufen viele Spiele nicht.
RSBasic hat geschrieben:
So nun konnte ich das Problem endlich mal eingrenzen. Es liegt am Multi-Monitor. Ich habe testweise (Win + P) nur auf meinen primären Monitor geschaltet und der Code funktioniert! Warum klappt es nicht, wenn mehrere Monitore aktiv sind? Mein Beispiel-Screen wird doch eh nur auf dem 1. Monitor angezeigt.
:?

@All
Kann jemand bitte, der zwei Monitore besitzt, den Code testen?

Habs gerade getestet, bei MultiMonitor-Betrieb geht das Beispiel nur, wenn die native Auflösung beibehalten wird.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 18:46 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
habe zwei TFTs mit 1280x1024 und wenn ich den Beispielcode ausführe "verschiebt" sich der zweite Bildschirm nach rechts und der Screen (mit nur 1024x768) wird ordnungsgemäß geöffnet und es kommt kein Fehler.

WIN XP dx9

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 18:49 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
RSBasic hat geschrieben:
@All
Kann jemand bitte, der zwei Monitore besitzt, den Code testen?

Läuft hier ohne Deinen NULL-Fehler, aber ich habe nur schwarzen Bildschirm.
Ist ein bekanntes Problem: Fullscreen problem with dualscreen monitor

Wenn ich die folgenden Zeilen vor Deinen Code einfüge, funktioniert alles korrekt
und ich sehe auch den Text:
Code:
;
; fix for fullscreen multi monitor bug in PB DirectX9
;
; Fullscreen problem with dualscreen monitor:
; http://www.purebasic.fr/english/viewtopic.php?f=4&t=41281
;
CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)

Diese Zeile sollte man immer als erstes in allen Fullscreen-Anwendungen aufrufen
um Probleme zu vermeiden. Dadurch wird die Aero-Desktop-Oberfläche ausgeschalten.

Vielleicht liegt es bei Dir auch daran.

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 18:59 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Mit dem Code von Danilo gehts auch mit 1024 x 768, lediglich die Anzeige auf dem zweiten Monitor ist ziemlich durcheinander
gewürfelt, aber nach beenden des Beispiels, ist alles wieder Okay.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 15 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScreenOutput() - Die angegebene Ausgabe ist NULL
BeitragVerfasst: 15.04.2012 19:09 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Überall
@ts-soft
Ich hatte zwar noch nie Probleme damit, dass irgendwelche Spiele nicht liefen, aber ich habe es mal rasch nachinstalliert.
Nach der Instalation habe ich den Code erneut getestet, aber leider besteht das Problem immernoch.
Aber selbst wenn irgendwelche Dateien fehlen würden, dann sollte PureBasic aber auch die korrekte Fehlermeldung ausgeben, dass eine DirectX-Datei fehlt. Sonst wäre das ein reines Ratespiel. :D

@Danilo
:shock: Ja damit funktioniert es tatsächlich. Vielen Dank! :) :allright:

Danilo hat geschrieben:
Diese Zeile sollte man immer als erstes in allen Fullscreen-Anwendungen aufrufen
um Probleme zu vermeiden.

Wirklich immer? Liegt es eigentlich an PB? Wenn ja, hoffentlich wird dieser Bug bald behoben.

_________________
Bild Bild
Bild PureBasic 5.10 x86/x64 Bild| Downloads | WinAPI Library | Tipps und Tricks | Backups (23.03.2013) (+89 Dateien (308 MB))
Das Benutzen von EnableExplicit ist kostenlos und vermeidet Fehler. | Gib Goto keine Chance. | Avira? Nein Danke.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye