Seite 2 von 2

Re: FRAGE: Arbeitsaufwand verwendung dll oder lib v(WIN) ?

Verfasst: 17.01.2026 11:43
von mk-soft
Eine lib kann den Code beinhalten (Statik LIB) oder nur den verweis auf die Funktionen der DLL.

Re: FRAGE: Arbeitsaufwand verwendung dll oder lib v(WIN) ?

Verfasst: 17.01.2026 13:25
von ChrigiGee
Hallo mk-soft,

dann mache ich wirklich einen Überlegung-Fehler, muss also die in der lib vorhanden obj extrahieren.

Daraus müsste es dann doch möglich sein, eine Liste der Funktionen zu erhalten
oder mache ich hier bereits wieder einen Gedankenfehler?

Nach einem Tag an Arbeit daran bin ich nun doch nicht mehr so Aufnahme fähig, wenn ich eher Falsch liege.
Auch natürlich da ich Euch nur gerade sehr wenig Code Präsentieren kann, wo ich über meine eigenen Füße falle.

Habe noch etwas gearbeitet am Source, aber ich bin noch nicht Fertig, höchstens eine kleine Erweiterung.

Herzlichen Dank und beste Wünsche für das Wochenende

Chris

Code: Alles auswählen

;- Top
; -----------------------------------------------------------------------------
;           Name:
;    Description:
;         Author:
;           Date: 2026-01-17
;        Version:
;     PB-Version:
;             OS:
;         Credit:
;          Forum:
;     Created by: csc
; -----------------------------------------------------------------------------

CompilerIf #PB_Compiler_IsMainFile
  EnableExplicit
CompilerEndIf

;- Global
Global Window_0
Global MainMenu
Global ToolBar
Global StatusBar

Global Combo_1, Cont_1, ListIcon_1

Global File$
Global dat$
Global zeile$

; Save TXT File from ListIconGadget
Global  LvInhaltSpeichern
Global pbnr
Global anzspalten
Global anzahlzeilen
Global j
Global k


#dnr2 = 1
#Gadget_1 = 0 
#maxspalten = 6

;- Lade Bilder
UsePNGImageDecoder()

;- Declare
Declare Event_Cont_1()
Declare Menu_Window_0()
Declare ToolBar_Window_0()
Declare StatusBar_Window_0()


  DataSection
    ToolBarIcon_New:  			: IncludeBinary #PB_Compiler_Home + "examples/sources/Data/ToolBar/New.png"
    ToolBarIcon_Open: 			: IncludeBinary #PB_Compiler_Home + "examples/sources/Data/ToolBar/Open.png"
    ToolBarIcon_Save: 			: IncludeBinary #PB_Compiler_Home + "examples/sources/Data/ToolBar/Save.png"
    ToolBarIcon_Properties: : IncludeBinary #PB_Compiler_Home + "examples/sources/Data/ToolBar/Properties.png"
    ToolBarIcon_Help1: 			: IncludeBinary #PB_Compiler_Home + "examples/sources/Data/ToolBar/Help.png"
    ToolBarIcon_Close: 			: IncludeBinary "icon\Icon 2\Log-Out-16x16x32.png"
  EndDataSection

  
Procedure StatusBar_Window_0()
  StatusBar = CreateStatusBar(#PB_Any, WindowID(Window_0))
  If StatusBar
    AddStatusBarField(120)
    AddStatusBarField(150)
    AddStatusBarField(#PB_Ignore)
    StatusBarText(StatusBar, 0, "Statusleiste")
    StatusBarText(StatusBar, 1, "Zentrum", #PB_StatusBar_BorderLess | #PB_StatusBar_Center)
    StatusBarText(StatusBar, 2, "Rechts", #PB_StatusBar_Right | #PB_StatusBar_Raised)
  EndIf
EndProcedure

Procedure LvInhaltSpeichern (dat$,pbnr,anzspalten)

  anzahlzeilen = CountGadgetItems(pbnr)
  If CreateFile(#dnr2, dat$)

      For j = 1 To anzahlzeilen
      
        zeile$ = ""
        For k = 0 To #maxspalten
          zeile$ + GetGadgetItemText(pbnr, j-1, k) + #LF$
        Next
        
        Debug zeile$
        WriteStringN(#dnr2,zeile$)      
      
      Next
      CloseFile(#dnr2)

  EndIf
EndProcedure


Procedure Menu_Window_0()
  MainMenu = CreateMenu(#PB_Any, WindowID(Window_0))
  If MainMenu
    MenuTitle("Datei")
    MenuItem(1, "Öffnen...")
    MenuItem(2, "Speichern")
    MenuBar()
    MenuItem(3, "&Beenden")
    MenuTitle("?")
    MenuItem(4, "Über")
  EndIf
EndProcedure


Procedure ToolBar_Window_0()
  Protected Image
  ToolBar = CreateToolBar(#PB_Any, WindowID(Window_0), #PB_ToolBar_Large | #PB_ToolBar_Text)
  If ToolBar
    Image = CatchImage(#PB_Any, ?ToolBarIcon_Open)
    ToolBarImageButton(1, ImageID(Image), #PB_ToolBar_Normal, "Öffnen...")
    FreeImage(Image)
    Image = CatchImage(#PB_Any, ?ToolBarIcon_Save)
    ToolBarImageButton(2, ImageID(Image), #PB_ToolBar_Normal, "Speichern")
    FreeImage(Image)
    ToolBarSeparator()
    
    Image = CatchImage(#PB_Any, ?ToolBarIcon_Close)
    ToolBarImageButton(3, ImageID(Image), #PB_ToolBar_Normal, "Beenden...")
    FreeImage(Image)
    ToolBarSeparator()
    
  EndIf
 EndProcedure
 
  Procedure Open_Window_0(X = 0, Y = 0, Width = 870, Height = 470)
  Window_0 = OpenWindow(#PB_Any, X, Y, Width, Height, "Title", #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  If Window_0

    Menu_Window_0()
    ToolBar_Window_0()
    StatusBar_Window_0()

    ListIcon_1 = ListIconGadget(#PB_Any, 0, 52, 870, 320, "Funktions Name", 120, #PB_ListIcon_CheckBoxes | #PB_ListIcon_ThreeState | #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_HeaderDragDrop)
      AddGadgetColumn(ListIcon_1, 1, "Parameter", 100)
      AddGadgetColumn(ListIcon_1, 2, "Variable", 100)
      AddGadgetColumn(ListIcon_1, 3, "Prozedur", 50)
      AddGadgetColumn(ListIcon_1, 4, "Komentare", 50)
      
      AddGadgetItem(ListIcon_1, -1, "ListIcon_1")
      
    Cont_1 = ContainerGadget(#PB_Any, 0, 372, 870, 50, #PB_Container_Raised)
      Combo_1 = ComboBoxGadget(#PB_Any, 0, 10, 170, 24)
        AddGadgetItem(Combo_1, -1, "STDCALL")
        AddGadgetItem(Combo_1, -1, "CDECL")
        AddGadgetItem(Combo_1, -1, "FASTCALL")        
        SetGadgetState(Combo_1, 0)
     CloseGadgetList()   ; Cont_1        
;    CloseGadgetList()   ; Cont_1

;    BindGadgetEvent(Cont_1, @Event_Cont_1())
    PostEvent(#PB_Event_SizeWindow, Window_0, 0)
    ProcedureReturn #True
  EndIf
EndProcedure


CompilerIf #PB_Compiler_IsMainFile
;- Hauptprogramm
If Open_Window_0()
 
  ;IceKeepEventLoop
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break

        ;-> Event Menu
      Case #PB_Event_Menu
        Select EventMenu()
        
          Case 1   ;Open
             File$ = OpenFileRequester("Library - Open", "Pure.lib", "Library (*.lib)|*.lib", 0)
             If File$+File$
              MessageRequester("Information", "Selected File: "+File$, 0);
              
              OpenLibrary(#PB_Any,"File$")
              IsLibrary(#PB_Any)
               ExamineLibraryFunctions(#PB_Any)
    				EndIf


    				
          Case 2   ;Save
             dat$ = SaveFileRequester("Library Function - Save", "Pure.txt", "Library Funktion (*.txt)|*.txt", 0)
             If dat$+dat$
              MessageRequester("Information", "Selected File: "+dat$, 0);
    				
LvInhaltSpeichern ("dat$", ListIcon_1, #maxspalten)
EndIf

    				
    				
    				
          Case 3   ;Quit
            Break
          Default
;            MessageRequester("Information", "ToolBar oder Menu ID : " + Str(EventMenu()) +#CRLF$+#CRLF$+ "Text : " + GetMenuItemText(MainMenu, EventMenu()), 0)
        EndSelect

        ;-> Event Gadget
      Case #PB_Event_Gadget
        Select EventGadget()
        EndSelect

    EndSelect
  ForEver
  ;EndIceKeepEventLoop
EndIf
CompilerEndIf
CloseLibrary(#PB_All)

Re: FRAGE: Arbeitsaufwand verwendung dll oder lib v(WIN) ?

Verfasst: 17.01.2026 13:42
von Axolotl
Moin,
ich kann dir leider nicht helfen, weil ich dein Problem / deine Fragen nicht verstehe....
Dafür habe ich mal kurz in deinen Code geschaut und dabei bin ich über einige 'Fehler' gestolpert.

Kopierte Beispielzeilen, die (glaube ich) so nicht funktionieren / oder eine sehr kreative Lösung darstellen...

Code: Alles auswählen

; .....
  File$ = OpenFileRequester("Library - Open", "Pure.lib", "Library (*.lib)|*.lib", 0)
  If File$+File$
; .....
  OpenLibrary(#PB_Any,"File$")
; .....
  IsLibrary(#PB_Any)

Re: FRAGE: Arbeitsaufwand verwendung dll oder lib v(WIN) ?

Verfasst: 17.01.2026 17:08
von H.Brill
Gibt es da keine Info-Datei dazu, die die Funktionen beschreibt ?
Und auch die Namen der Funktionen nutzen ja nichts, wenn man die Parameter für die einzelnen
Funktionen nicht kennt.