BattlePunks Tutorial Problem

Anfängerfragen zum Programmieren mit PureBasic.
Beat-Wolle
Beiträge: 7
Registriert: 09.02.2008 13:52

BattlePunks Tutorial Problem

Beitrag von Beat-Wolle »

Hallo PureBoard, Hallo User!!

Ich hab mir jetzt PureBasic gekauft und das BattlePunks
tutorial durchgelsen.
Aber sobald ich es starten möchte, gibt mir PB einen Fehler wieder
zurück.
Könnt Ihr mir vielleicht weiterhelfen ?

Wäre euch sehr dankbar!!

Fehler:

http://img530.imageshack.us/my.php?image=falseyy2.jpg


und wenn ich die GetPID.pb starten möchte gibt er mir diesen Fehler wieder:

**
Structure not found: PROCESSENTRY32

dann diese Zeile

Define.PROCESSENTRY32 Proc32
**

Ich bin total der anfänger in PB deshalb sorry wegen meiner fragerei..


Mfg Wolle
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Naja, der Compiler findet die Structure PROCESSENTRY32 nicht :wink:

Code: Alles auswählen

Structure PROCESSENTRY32
  dwSize.l
  cntUsage.l
  th32ProcessID.l
  th32DefaultHeapID.l
  th32ModuleID.l
  cntThreads.l
  th32ParentProcessID.l
  pcPriClassBase.l
  dwFlags.l
  szExeFile.c[260]
EndStructure
Kopier das hier mal an den Anfang des Codes...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Beat-Wolle
Beiträge: 7
Registriert: 09.02.2008 13:52

Beitrag von Beat-Wolle »

Hallo und danke für die Hilfe,
also ich hab mir dienen Code reinkopiert.
Aber nun gibt er mir wenn ich die GetPID.pb starten möchte den Fehler
Structure not found: c

dann verweist er mich auf diese Zeile:

szExeFile.c[260]


hier mal mein ganzer Code zu GetPID.pb

Code: Alles auswählen

#TH32CS_SNAPHEAPLIST = $1 
#TH32CS_SNAPPROCESS = $2 
#TH32CS_SNAPTHREAD = $4 
#TH32CS_SNAPMODULE = $8 
#TH32CS_SNAPALL = #TH32CS_SNAPHEAPLIST | #TH32CS_SNAPPROCESS | #TH32CS_SNAPTHREAD | #TH32CS_SNAPMODULE 
#TH32CS_INHERIT = $80000000 
#INVALID_HANDLE_VALUE = -1 
#MAX_PATH = 260 
#PROCESS32LIB = 9999 
#PSAPI = 9998 

Procedure.s ExePath(); - Return the path and name of the running execute 

  Prg.s = Space(#MAX_PATH+1) 
  GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH) 
  
  ProcedureReturn Prg 
  
EndProcedure 

Procedure GetPID(ProgramName$)

FileName.s = GetFilePart(ExePath()) 

If OpenLibrary (#PROCESS32LIB, "kernel32.dll") 

  snap = CallFunction (#PROCESS32LIB, "CreateToolhelp32Snapshot", #TH32CS_SNAPPROCESS, 0) 
  
  If snap 
  
  Structure PROCESSENTRY32
  dwSize.l
  cntUsage.l
  th32ProcessID.l
  th32DefaultHeapID.l
  th32ModuleID.l
  cntThreads.l
  th32ParentProcessID.l
  pcPriClassBase.l
  dwFlags.l
  szExeFile.c[260]
EndStructure
  
    Define.PROCESSENTRY32 Proc32
    Proc32\dwSize = SizeOf (PROCESSENTRY32) 
    
    If CallFunction (#PROCESS32LIB, "Process32First", snap, @Proc32) 

      While CallFunction (#PROCESS32LIB, "Process32Next", snap, @Proc32) 
      
        If PeekS (@Proc32\szExeFile)<>FileName.s 

          PID=Proc32\th32ProcessID
          program$ = PeekS (@Proc32\szExeFile)
        
            If program$=ProgramName$

              hWnd = Proc32\th32ProcessID ;hWnd has ProcessID
              
              ProcedureReturn hWnd
              
            EndIf
            
        EndIf 
        
      Wend    
        
    EndIf    
    
    CloseHandle_ (snap) 
    
  EndIf 
  
  CloseLibrary (#PROCESS32LIB) 
  
EndIf 

EndProcedure

; IDE Options = PureBasic v4.00 (Windows - x86)
; CursorPosition = 46
; Folding = -
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 »

Welche PB-Version hast du denn gekauft ?
Weil wie du an deinem eigenen Code unten siehst, ist das für PureBasic ab Version 4 gedacht.

[Nachtrag]
Mach aus dem

Code: Alles auswählen

szExeFile.c[260]
ein

Code: Alles auswählen

szExeFile.b[260]
dann sollte es auch mit deiner scheinbar älteren Version hinhauen.
Beat-Wolle
Beiträge: 7
Registriert: 09.02.2008 13:52

Beitrag von Beat-Wolle »

Hallo Haxor

also welche Version dies genau ist weiß ich leider nicht.
aber ich habe den code mal geändert wie du mir beschrieben hast,
nurn sagt er mir aber: Garbage to the end of line

bei dieser Zeile:

Define.PROCESSENTRY32 Proc32

tut mir leid wenn ich euch hier mit meinen fragen nerven.. :/
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 »

Die Version siehst du in der Menüleiste der IDE bei "Hilfe" / "Über".
Ich tippe mal auf die 3.3er Version.

Define kennt diese alte Version offensichtlich auch nicht, also bastel es mal um:
von:

Code: Alles auswählen

Define.PROCESSENTRY32 Proc32
    Proc32\dwSize = SizeOf (PROCESSENTRY32)
in

Code: Alles auswählen

Proc32.PROCESSENTRY32\dwSize = SizeOf (PROCESSENTRY32)
Zuletzt geändert von HeX0R am 09.02.2008 14:33, insgesamt 1-mal geändert.
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

HeX0R hat geschrieben:...dann sollte es auch mit deiner scheinbar älteren Version hinhauen.
Scheint nach dem Screenshot 3.3 zu sein...
@beat-wolle: So schnell wie möglich updaten! :shock:
EDIT: OK, es ist 3.3 :roll:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
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 »

Du siehst das am Screenshot der IDE ? :shock:
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

HeX0R hat geschrieben:Du siehst das am Screenshot der IDE ? :shock:
Ja :lol:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Beat-Wolle
Beiträge: 7
Registriert: 09.02.2008 13:52

Beitrag von Beat-Wolle »

Hallo Haxor

Ja ich hab die Version 3.30

habe auch gleich den code geändert... aber nun sagt er mir
wo ich vorhin geändert habe

szExeFile.c[260] in szExeFile.d[260]

Structure not found: d



schonmal vielen vielen dank fürs helfen :)
Antworten