Linker Error

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Yoshi hat geschrieben:
Wenn dieser Code wirklich oben genannten Fehler auslöst, dann hast Du Dein
PB nicht richtig installiert. Wie Kaeru Gaman bereits in einem anderen Thread
erwähnte, sollte man eine neue Version nicht über eine alte installieren,
sondern in einen separaten Ordner.

Grüße ... Kiffi

// Edit:
Yoshi hat geschrieben:THX, es geht jetzt.
Woran lag's?
a²+b²=mc²
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Ich habe einen Neustart gemacht :mrgreen:

Aber das Programm wird nicht geöffnet. Aber ich haue gleich erstmal Pb runter und dann kommts neu rauf, ml schauen obs dann geht.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Yoshi hat geschrieben:Ich habe einen Neustart gemacht :mrgreen:

Aber das Programm wird nicht geöffnet.
Du erwartest, dass es eine DLL ausführt? :? Dir fehlt ja überhaupt erstmal eine Hauptschleife.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Ich habs jetzt mal wieder zu einer Datei zusammengeflickt, aber das Fenater wird immer noch nicht geöffnet. :?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

DarkDragon hat geschrieben:btw.: verwenden! HTML ist nicht möglich.
HTML ist möglich, wenn man beim post schreiben das Häkchen ausmacht
"HTML in diesem Beitrag deaktivieren"

dürfte hier am .bmp liegen, dass es nicht angezeigt wird.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Yoshi hat geschrieben:Ich habs jetzt mal wieder zu einer Datei zusammengeflickt, aber das Fenater wird immer noch nicht geöffnet. :?
DarkDragon hat geschrieben:Dir fehlt ja überhaupt erstmal eine Hauptschleife
HeX0R hat geschrieben:Aber, dass du deine Prozedur erst mal aufrufen musst, weisst du ?
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

Meinst du so?

Code: Alles auswählen

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 300, 150, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
    If CreateMenu(#MenuBar_0, WindowID(#Window_0))
      MenuTitle("Datei")
      MenuItem(#MENU_6, "Audiodatei laden")
      MenuBar()
      MenuItem(#MENU_11, "Beenden")
      MenuTitle("Status")
      MenuItem(#MENU_14, "Wiedergabe")
      MenuItem(#MENU_16, "Pause")
      MenuItem(#MENU_17, "Stopp")
      MenuTitle("Laustärke")
      MenuItem(#MENU_18, "0%")
      MenuItem(#MENU_19, "10%")
      MenuItem(#MENU_20, "20%")
      MenuItem(#MENU_21, "25%")
      MenuBar()
      MenuItem(#MENU_22, "30%")
      MenuItem(#MENU_23, "40%")
      MenuItem(#MENU_26, "50%")
      MenuBar()
      MenuItem(#MENU_27, "60%")
      MenuItem(#MENU_28, "70%")
      MenuItem(#MENU_29, "75%")
      MenuBar()
      MenuItem(#MENU_30, "80%")
      MenuItem(#MENU_31, "90%")
      MenuItem(#MENU_32, "100%")
    EndIf

      
  EndIf
EndProcedure
Das ist jetzt der Pruzedur-Teil
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

>> Aber, dass du deine Prozedur erst mal aufrufen musst, weisst du ?
> Meinst du so?
> Das ist jetzt der Pruzedur-Teil
:lol:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Yoshi
Beiträge: 95
Registriert: 09.01.2007 16:42

Beitrag von Yoshi »

:oops:


EDIT: Hier der ganze Quellcode:

Code: Alles auswählen

#WindowWidth=300  
#WindowHeight=150


Enumeration
  #Window_0
EndEnumeration

Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_6
  #MENU_11
  #MENU_14
  #MENU_16
  #MENU_17
  #MENU_18
  #MENU_19
  #MENU_20
  #MENU_21
  #MENU_22
  #MENU_23
  #MENU_26
  #MENU_27
  #MENU_28
  #MENU_29
  #MENU_30
  #MENU_31
  #MENU_32

EndEnumeration

If InitMovie() = 0 
  MessageRequester("Error", "Da geht was nicht!", 0) 
  End 
EndIf 


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 300, 150, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
    If CreateMenu(#MenuBar_0, WindowID(#Window_0))
      MenuTitle("Datei")
      MenuItem(#MENU_6, "Audiodatei laden")
      MenuBar()
      MenuItem(#MENU_11, "Beenden")
      MenuTitle("Status")
      MenuItem(#MENU_14, "Wiedergabe")
      MenuItem(#MENU_16, "Pause")
      MenuItem(#MENU_17, "Stopp")
      MenuTitle("Laustärke")
      MenuItem(#MENU_18, "0%")
      MenuItem(#MENU_19, "10%")
      MenuItem(#MENU_20, "20%")
      MenuItem(#MENU_21, "25%")
      MenuBar()
      MenuItem(#MENU_22, "30%")
      MenuItem(#MENU_23, "40%")
      MenuItem(#MENU_26, "50%")
      MenuBar()
      MenuItem(#MENU_27, "60%")
      MenuItem(#MENU_28, "70%")
      MenuItem(#MENU_29, "75%")
      MenuBar()
      MenuItem(#MENU_30, "80%")
      MenuItem(#MENU_31, "90%")
      MenuItem(#MENU_32, "100%")
    EndIf

      
  EndIf
EndProcedure


  HideWindow(0,0) 
  Volume= 100 
  Repeat 
    Select WindowEvent() 
      Case #PB_Event_Menu 
        Select EventMenu()
          Case 6
            MovieName$ = OpenFileRequester("Bitte wählen sie die zu ladene Datei!", "", "Audiodateien(*.wav;*.mp3;*.wma)|*.wav;*.mp3;*.wma|Alle Dateien(*.*)|*.*", 0) 
            If MovieName$ 
              If LoadMovie(0, MovieName$) 
                MovieLoaded = 1 
                MovieState = 0 
                
                If MovieHeight(0) > 0  ; Not an audio only Movie.. 
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, MovieWidth(0), MovieHeight(0)+70) 
                Else 
                  ResizeWindow(0, #PB_Ignore, #PB_Ignore, #WindowWidth, #WindowHeight) 
                EndIf 
                
                StatusBarText(0, 0, "Datei wurde geladen", 0) 
              Else 
                StatusBarText(0, 0, "Datei kann nicht geladen werden", 0) 
              EndIf 
            EndIf 
            
          Case 11
            End 
            
          Case 14 
            If MovieLoaded 
              If MovieState = 2 
                ResumeMovie(0) 
              Else 
                PlayMovie(0, WindowID(0)) 
              EndIf 
              MovieState = 1  
            EndIf 
            
          Case 16
            If MovieLoaded And MovieState = 1 
              PauseMovie(0) 
              MovieState = 2  
              
           EndIf 
            
          Case 17
            If MovieLoaded And MovieState = 1 
              StopMovie(0) 
              MovieState = 3 
              
           EndIf 
            
          Case 18 
            Volume = 0 
            
          Case 19
            Volume = 10 
          
          Case 20 
            Volume = 20 
            
          Case 21
            Volume = 25 
            
          Case 22
            Volume = 30 
            
          Case 23 
            Volume = 40 
            
          Case 26
            Volume = 50 
            
          Case 27
            Volume = 60 
            
          Case 28 
            Volume = 70 
            
          Case 29
            Volume = 75 
            
          Case 30 
            Volume = 80 
            
          Case 31
            Volume = 90 
            
          Case 32
            Volume = 100 
            
        EndSelect 
        
        Case #PB_Event_CloseWindow 
        End 
        
      Case #PB_Event_SizeWindow 
        If IsMovie(0) 
          ResizeMovie(0, 0, 27, WindowWidth(0), WindowHeight(0)-70) 
        EndIf 
        
      Case 6
        Delay(20) 
        
        
    EndSelect 
  ForEver 
End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Before man ein Fenster verstecken kann, sollte man es erst erstellen, wie
bereits gesagt wurde:Open_Window_0() fehlt
Desweiteren sollte man die Menükonstanten auch im Eventloop nutzen,
ansonsten machen die ja keinen Sinn.

WaitWindowEvent() ist in jedemfall besser geeignet, ohne dieses Delay()

Ansonsten noch das Eventloop vervollständigen und dem Fenster einen Sinn geben :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten