Seite 1 von 2

BattlePunks Tutorial Problem

Verfasst: 09.02.2008 13:54
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

Verfasst: 09.02.2008 13:58
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...

Verfasst: 09.02.2008 14:14
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 = -

Verfasst: 09.02.2008 14:20
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.

Verfasst: 09.02.2008 14:30
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.. :/

Verfasst: 09.02.2008 14:33
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)

Verfasst: 09.02.2008 14:33
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:

Verfasst: 09.02.2008 14:34
von HeX0R
Du siehst das am Screenshot der IDE ? :shock:

Verfasst: 09.02.2008 14:35
von milan1612
HeX0R hat geschrieben:Du siehst das am Screenshot der IDE ? :shock:
Ja :lol:

Verfasst: 09.02.2008 14:36
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 :)