Invalid Memoryaccess bei OpenLibrary: Wer Buggy, Ich oder PB

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Invalid Memoryaccess bei OpenLibrary: Wer Buggy, Ich oder PB

Beitrag von Franky »

Code: Alles auswählen

Structure Function
       File.s
       Function.s
EndStructure
       
Global NewList DLL.s()
Global NewList Procs.Function()
Procedure EnumDirectory(adr.s,index.l)        
        If ExamineDirectory(index,adr,"*.*")
        Debug adr
        While NextDirectoryEntry(index)
            If DirectoryEntryType(index)=#PB_DirectoryEntry_Directory And Left(DirectoryEntryName(index),1)<>"."
                      EnumDirectory(adr+"\"+DirectoryEntryName(index),index+1)
            ElseIf UCase(GetExtensionPart(DirectoryEntryName(index)))="DLL"
                    AddElement(DLL())
                           DLL()=adr+"/"+DirectoryEntryName(index)
            EndIf
        Wend              
           FinishDirectory(index)
        EndIf
EndProcedure


Procedure EnumFunctions()
          ForEach DLL()
                Debug DLL()
                If OpenLibrary(1,DLL())
                     If  ExamineLibraryFunctions(1)
                      For a=1 To CountLibraryFunctions(1)
                          AddElement(Procs())
                               Procs()\file=dll()
                               NextLibraryFunction()
                               Procs()\Function=LibraryFunctionName()
                      Next
                    EndIf
                EndIf
                CloseLibrary(1)
         Next   
EndProcedure

x=GetTickCount_()
EnumDirectory("C:\",0)
EnumFunctions()
MessageRequester("Zeit: ",Str(GetTickCount_()-x))
If OpenWindow(1,200,200,500,500,"Alle Funktionen Zeiger")
        CreateGadgetList(WindowID(1))
             ListIconGadget(0,0,0,500,500,"Funktion",150)
             AddGadgetColumn(0,1,"Adresse",350)
             ForEach Procs()
                    AddGadgetItem(1,-1,procs()\Function+Chr(10)+Procs()\file)
             Next 
             MessageRequester("Menge: ",Str(CountList(Procs())))
             Repeat: Until WaitWindowEvent()=#WM_CLOSE 
             CloseWindow(1)
EndIf             
End 
             
Testet mal, ist der Invalidmemory Access ein Fehler bei meinem Code, oder in PB?
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
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 »

Konnte keinen Fehler bemerken, da mich das gemeckere mit den 16-Bit DLLs
genervt hat, hab ich aber irgendwann abgebrochen.
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
Gesperrt