Erstelltes Programm läuft nicht überall

Anfängerfragen zum Programmieren mit PureBasic.
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

Moin

ich dachte mir, so zum mal wieder warm werden in Sachen programmieren, habe ich mir ein kleines PRG geschrieben, dass eigentlich nichts anderes macht als ein Fenster zu öffnen, etwas Grafik anzeigen, einen Text-Scroller an zu zeigen und auf Tastatureingabe wartet, dass es ein externes PRG starten kann.

So schön, so gut... das ganze hier compiliert... Die EXE auf meinen ganzen Rechnern hier getestet (6 Rechner von xp bis win10, jeweils in 64 oder 32bit) läuft wunderbar. Das ganze auf unseren Forum zum runterladen angeboten... soweit alles toll und schön und so :)

Nun sind ein paar Rechner aufgetaucht, das wo das PRG nicht läuft. Da haben wir ein Win10 und ein Win7 beides 64bit da wo es nicht läuft - das heißt es wird nichts angezeigt. Im Taskmanager ist das PRG jedoch verzeichnet. Ich habe nun schon hin und her probiert, warum es nicht auf dieses Rechner läuft. Bin nun langsam am Ende... wie gehe ich nun weiter an das Problem ran? hat einer ne Idee?

Hier mal der Quellcode:

Code: Alles auswählen

If InitSprite() And InitKeyboard() = 0
    MessageRequester("Error", "Can't open screen & sprite environment!", 0)
    End
  EndIf

Define EventID

Procedure AddFont()
  AddFontResource_("cbm.ttf");Anpassen
  SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
  
  
EndProcedure

Procedure RemoveFont()
  RemoveFontResource_("cbm.ttf");Anpassen
  SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
  FreeFont(1)
  
EndProcedure



; Lade Image und starte prozedur für fontload
UsePNGImageDecoder()
UseJPEGImageDecoder()
; LoadImage(2,"relo-nebulus.jpg")
; LoadImage(3,"scan3.png")
AddFont()
LoadFont(1,"cbm",10, #PB_Font_HighQuality)
LoadFont(2,"cbm",9, #PB_Font_HighQuality)

DataSection
       pic_1_Start:
IncludeBinary "relo-nebulus.jpg"
       pic_1_End:
     EndDataSection
     
DataSection
       pic_2_Start:
IncludeBinary "scan3.png"
       pic_2_End:
     EndDataSection
     
     CatchImage (2, ?Pic_1_Start, ?pic_1_End)
     CatchImage (3, ?Pic_2_Start, ?pic_2_End)

; Text für Scroller und Längenermittlung
#width = 640
#height = 200
#txt = 0
CreateImage(#txt, #width, 20, 32) ; #PB_Image_Transparent)
Define text.s = "RETROLOADER V0.1 BY PIXELINVADERS... PLAY NEBULUS (AMIGA-VERSION) BY TRIFFIX ENTERTAINMENT 1987 +++ SIDTUNE STOLEN FROM HIGH VOLTAGE SID COLLECTION - TRACK: UNKOWN84 +++ GREETINGS TO CYRA - KAOS - NORTH - APPRENTICE - RETROBLAH - INFINITY(NES) - ZERSTAMPFER - JENS64 - HOUDINI - BRUN0 - CLASSIC-VIDEOGAMES - ARCADEZENTRUM - ARCADEINFO - CIRCUIT-BOARD - AND ALL PEOPLE OVER THE WORLD :D "
StartDrawing(ImageOutput(#txt))
DrawingFont(FontID(1))
  Define length.l = TextWidth(text) + #width
StopDrawing()
Define pos.l = #width
Define speed.l = 2 ;Millisekunden pro Pixel
Define zeit.l = ElapsedMilliseconds()

; main mit window-screen
Define event.l

para$="-soundvolume 50 84.sid"
      
      dv=RunProgram("vsid.exe",para$,"", #PB_Program_Open | #PB_Program_Hide)

  If OpenWindow(0, 0, 0, 640, 480, "REtro-LOad V0.1", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    If OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, #True, 0, 0, #PB_Screen_WaitSynchronization)
  
      ; ClearScreen(RGB(250,0,0))
      ; FlipBuffers()

      ; LoadSprite(1,"back1.bmp")
      ; DisplaySprite (1,0,0)
      
      
      
      
      StartDrawing(ScreenOutput())
      DrawImage(ImageID(2),0,0)
      StopDrawing()
       
       
         
         ; scanlines für fast das ganze window
         StartDrawing(ScreenOutput())
         DrawAlphaImage(ImageID(3),0,0,100)
         StopDrawing()
         
         ; DisplayTransparentSprite (1,0,0,100 )
      
      Repeat

        ExamineKeyboard()
        
        taste$ = KeyboardInkey()
          
        If taste$="1"
          
          KillProgram(dv)
          c64para$="-f nebulus-start3.uae"
          RunProgram("winuae.exe",c64para$,"")
          ;RunProgram("n.bat","","", #PB_Program_Hide)
            End
          EndIf
          If taste$="2"
          KillProgram(dv)
          c64para$="-f nebulus-start3_win.uae"
          RunProgram("winuae.exe",c64para$,"")
          ;RunProgram("n.bat","","", #PB_Program_Hide)
            End
          EndIf
        
        
        Repeat
          Event = WaitWindowEvent(1)
          If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
            ; RemoveFont() ; <---- prozedurstart für font löschen aus dem system
            KillProgram(dv)
            End
          EndIf    
        Until Event = 0
        Gosub scrollText
      ForEver 
    Else
      MessageRequester("Error", "Ups! Irgendwie geht das nicht", 0)
    EndIf
  EndIf
  
  ; Scroller routine 
  scrollText:
  If zeit+speed < ElapsedMilliseconds()
    zeit = ElapsedMilliseconds()
    StartDrawing(ImageOutput(#txt))
    ;DrawingMode(#PB_2DDrawing_Transparent)
    DrawingFont(FontID(1))
      DrawText(pos,5,text,#Yellow)
    StopDrawing()
    StartDrawing(WindowOutput(0))
    ; StartDrawing(ScreenOutput())
       DrawImage(ImageID(#txt),0,460)
    StopDrawing()
    pos - 1
    If pos < -length+#width
      pos = #width
    EndIf
  EndIf
  ; scanlines für scroller
  StartDrawing(WindowOutput(0))
         DrawAlphaImage(ImageID(3),0,460,100)
         StopDrawing()
  Return

bis denne...
north
Bild
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

ach ja... andere erstellte PB-PRG's von mir laufen auf den "Problem" Rechnern ohne Probleme. Das nur so am Rande.
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

dein included binary fehlt- wie soll man testen?
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

so was... stimmt, kommt besser. Hier mal die selbstentpakende ZIP so wie die auch schon einige runtergeladen hatten. Da ist jedenfalls alles drin.

http://www.pixelinvaders.de/relo0815/ne ... vaders.exe

Bin mal gespannt ob ihr was findet... wäre klasse.

bis denne...
North


P.S.: Hier ist der Link zu dem Foren-Thread damit man sieht, wie das PRG beim laufen aussieht... nur mal so :)
http://www.arcadezentrum.com/forum/inde ... post244988
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

deine ganzen includes fehlen immer noch.

deinen code kann man nicht ausführen.

es fehlt:

Code: Alles auswählen

IncludeBinary "relo-nebulus.jpg"

Code: Alles auswählen

IncludeBinary "scan3.png"

Code: Alles auswählen

para$="-soundvolume 50 84.sid"

Code: Alles auswählen

dv=RunProgram("vsid.exe",para$,"", #PB_Program_Open | #PB_Program_Hide)
Nach einigem Ausklammern kommt zumindest ein schwarzer Screen mit gelber Laufschrift. ( ps. sehr holprig, die ist nicht flüssig)

Code: Alles auswählen

KillProgram(dv)
verursacht einen Fehler

Kann es sein, dass Du deine Laufschrift in einem DirectX Screenbereich darstellst? Wenn ja, kenn ich den Fehler. Dazu später eine Info wenn dem so ist.

Bitte lade alle "Includes" die Du im PB Code aufrufst in ein Zip oder Rar hoch.
und erstell bitte vorher eine Verzeichnisstruktur.

Beispiel (nachdem man dein Zip/ rar entpackt hat:
Bild

Entsprechend die IncludeBinary Pfade im Code anpassen.

Das macht es allen ungemein einfacher dein Code auszuführen und nachzuschauen ;)
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

ja ja... das mit dem strukturierten und aufgeräumten Programmieren habe ich es net so. Ich bin da noch etwas sehr altmodischer... damals gab es noch keine Verzeichnisse auf Datenträger, oder gar eine Programmstruktur, so wie man sie heute in Listings sieht... Macht der Gewohnheit^^
Nach einigem Ausklammern kommt zumindest ein schwarzer Screen mit gelber Laufschrift. ( ps. sehr holprig, die ist nicht flüssig)
Ja, denn scheind das PRG im Grund bei dir zu funktionieren. Diese Laufschriftroutine habe ich hier aus dem Board, habe ich mir passend gemacht. Wenn wer, oder du ne bessere hast, dann übernehme ich die gerne. Bei der jetzigen lässt sich auch nicht die Geschwindigkeit vernünftig steuern, die ist bei jedem Rechner irgendwie anders... aber das wäre jetzt das nächste gewesen , was ich mal genauer untersucht hätte
Kann es sein, dass Du deine Laufschrift in einem DirectX Screenbereich darstellst? Wenn ja, kenn ich den Fehler. Dazu später eine Info wenn dem so ist.
Erzähle mal was drüber... DirectX Screenbereich? Welche Befehle nutzen den DirectX? Welcher Fehler meinst du da genau?


Ich habe mal meinen Testleuten, also da wo das PRG nicht läuft mal das ganze einzeln compiliert, also ohne Scroller, ohne Sound, usw... so das man mal sieht, mit was das PRG nicht läuft, oder läuft. mal sehen... doof nur, das bei meinen Rechnern überall das PRG läuft ^^
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

Lade doch bitte alle Quelldateien hoch. dann kann ich dir ein flüssiges ordentliches tool daraus machen.

aber ohne Mitarbeit gehts nicht.

hier ein beispiel eines smooven scrollers.
http://www.filedropper.com/keisonyedemo

starten und warm up abwarten :)



der Fehler in deinem Programm:
Bild

liegt wohl daran, weil der ganze rest fehlt. Klammer ich den Befehl aus und lasse END drin, kommt kein Fehler mehr
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

na, was ein weicher Scroller ist, weiß ich wohl. Wollte hier nur einen einfachen Scroller haben... Schaut aber ganz nett aus. Brauche mal solche fertigen Scripte zum ansehen^^

http://dlvs.de/forum.zip

hier ist ne zip da wo fehlenden die Daten drin sind, also die jps, die png, sid.exe, 84.sid und der cmb Zeichensatz.... und alles was nach Betätigung Taste 1 oder 2 kommt spielt keine Rolle und habe ich somit weggelassen.

Wie gesagt, mir gehts nur darum, warum das PRG, was du schon so gut wie gestartet hast, auf eine Hand voll getesteten Rechner nicht funktioniert. Im meinen Büro, Studio und hier Daheim funzt das überall.
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

Haben diese PCs auf denen das Programm nicht läuft folgende Version drauf: DirectX9c latest Version?

Überprüfen mit DXDiag in der Eingabeaufforderung.

Wenn diverse Programme nicht laufen, fehlt im System32 Ordner folgende Datei oder ist veraltet: d3dx9_43.dll
Sie sollen bitte DX9c Latest neu installieren und dann sollte dein Programm laufen.

Dein Pack schaue ich mir später mal an.

Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Re: Erstelltes Programm läuft nicht überall

Beitrag von #NULL »

Code: Alles auswählen

Debug RunProgram("winuae.exe",c64para$,"")
ouput: denn das hab ich nicht installiert :wink:
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten