PBOSL 1.0 (OpenSource Library-Sammlung)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

PBOSL 1.0 (OpenSource Library-Sammlung)

Beitrag von Danilo »

PBOSL - Eine OpenSource Library-Sammlung für PureBasic

Code: Alles auswählen

|---------------------------------------------------------------------------------------|
|                                                                                       |
|                   PBOSL - PureBasic OpenSource Libraries (LGPL)                       |
|                                                                                       |
|---------------------------------------------------------------------------------------|
| Library (alphabetically)     | Prog.Language |       Coder      | Win | Linux | MacOS |
|------------------------------+---------------+------------------+-----+-------+-------|
| PBOSL_AnimSprite             |       C       |      Danilo      |  X  |   X   |   ?   |
| PBOSL_AppRunning             |       ASM     |       Rings      |  X  |       |       |
| PBOSL_Bignum                 |       PB      |       Rings      |  X  |       |       |
| PBOSL_BriefLZ                |       C       |   Joergen Ibsen  |  X  |   ?   |   ?   |
| PBOSL_CatchDebugOutput       |       PB      |       Rings      |  X  |       |       |
| PBOSL_CPUmonitor             |      ASM      |      Danilo      |  X  |       |       |
| PBOSL_Cryption               |       PB      |Mischa Brandt/Dige|  X  |       |       |
| PBOSL_DDE                    |       PB      |       Rings      |  X  |       |       |
| PBOSL_ExDataBase             |       PB      |       Rings      |  X  |       |       |
| PBOSL_ExPrinter              |       PB      |       Rings      |  X  |       |       |
| PBOSL_FASTFILE               |      ASM      |       Rings      |  X  |       |       |
| PBOSL_FastFileCRC32          |       PB      |       Rings      |  X  |       |       |
| PBOSL_FastFileMD5            |       PB      |       Rings      |  X  |       |       |
| PBOSL_FastFileText           |       PB      |       Rings      |  X  |       |       |
| PBOSL_GetExeNameFromSuffix   |       PB      |       Rings      |  X  |       |       |
| PBOSL_GetHWInfo              |      ASM      |       Rings      |  X  |       |       |
| PBOSL_GlobalHotkeys          |       PB      |     Gangsta93    |  X  |       |       |
| PBOSL_GlobalSharedMemory     |       PB      |       Rings      |  X  |       |       |
| PBOSL_LoadDllMemory          |       C       |   Joachim Bauch  |  X  |       |       |
| PBOSL_MSXML3                 |       PB      |       Kiffi      |  X  |       |       |
| PBOSL_NTLog                  |       PB      |       Rings      |  X  |       |       |
| PBOSL_NTService              |       PB      |       Rings      |  X  |       |       |
| PBOSL_OOP                    |      ASM      |      Danilo      |  X  |       |       |
| PBOSL_Process                |       PB      |       Rings      |  X  |       |       |
| PBOSL_SkinWin                |       C       |      Danilo      |  X  |       |       |
| PBOSL_SkinWinFast            |       C       |      Danilo      |  X  |       |       |
| PBOSL_SQLite3                |       PB      |       Kiffi      |  X  |       |       |
| PBOSL_Timer                  |       C       |      Danilo      |  X  |       |       |
| PBOSL_ToolbarPro             |       C       |      Danilo      |  X  |       |       |
| PBOSL_TRYCATCH               |      ASM      | Sebastian Lackner|  X  |       |       |
| PBOSL_UInt64                 |       C       |       Rings      |  X  |   ?   |   ?   |
| PBOSL_VB_Helper              |       PB      |       Rings      |  X  |       |       |
| PBOSL_WinIO                  |       PB      |       Rings      |  X  |       |       |
|---------------------------------------------------------------------------------------|
| X = supported OS                                                                      |
| ? = possible, should compile (with modifications)                                     |
|---------------------------------------------------------------------------------------|
DOWNLOAD:
PBOSL.PureArea.net

Benötigt zum kompilieren:
- NASM Assembler
- Pelles C Compiler
- Tailbite und PureBasic

Benötigt zum erstellen der HtmlHelp-Hilfe (.chm):
- Microsoft HTML-Help-Workshop

Diese Tools werden nur gebraucht wenn man den Source
selbst kompilieren möchte. In den Binary-Paketen findet
man vorkompilierte Bibliotheken und eine fertige Hilfe dazu.


Als Lizenz wurde die LGPL gewählt um die Bibliotheken auch
für die kommerzielle Entwicklung einsetzen zu können ohne
den Source seines Programmes veröffentlichen zu müssen.
Der Source der Libs ist und bleibt OpenSource, aber in kompilierter
Form kann man die Libs auch für unfreie Projekte verwenden.


Weiterhin wäre es wohl sinnvoll einen "offiziellen" Projektleiter für
PBOSL zu finden. Dieser könnte dann weitere PB-OpenSource-Libs
hinzufügen und nach Veränderungen/Bugfixes die offiziellen
Releases steuern.
Wenn sich da freiwillig Jemand findet, der auch ein bissl was von
ASM+C+PB versteht, dann wäre das sicherlich von Vorteil.

Rings und ich können uns nicht weiter darum kümmern, da
wir PB nur noch sehr selten nebenbei einsetzen und uns mehr
auf die modernere Entwicklung mit .NET und C++ etc. konzentrieren (müssen).

PBOSL liegt nun in Euren Händen - macht was daraus... und viel Spaß damit! ;)

// Edit 01.10.2005 by Kiffi: Lib-Auflistung aktualisiert. Thanks to ts-soft!
Zuletzt geändert von Danilo am 27.07.2005 07:16, insgesamt 1-mal geändert.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Tolle Sache :allright: ! Vielleicht sollte man noch einen Thread für die Wahl des "offiziellen" Projektleiter aufmachen ;) . Oder dies wird der erste Thread im Feedback Bereich in dem es eine Umfrage gibt, wär auch mal ne Abwechslung. Vielleicht sollte man eine kleine Webseite dafür gestalten, auf der Leute ihre Userlibs mit Source einsenden können.
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.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

DarkDragon hat geschrieben:Vielleicht sollte man eine kleine Webseite dafür gestalten, auf
der Leute ihre Userlibs mit Source einsenden können.
Wir hatten schon überlegt eine Seite bei Sourceforge.net einzurichten.
Da wir jetzt aber nichts mehr damit zu tun haben, kann das der
neue offizielle Maintainer machen. Oder vielleicht gibt Andre dem
neuen Projektleiter ein paar Megabyte auf PureArea.net oder so... (*Hint*) ;)

Das ganze solltet ihr mit dem englischen Forum synchronisieren:
PBOSL 1.0 (OpenSource Library-Collection)
Zuletzt geändert von Danilo am 06.07.2005 11:57, insgesamt 1-mal geändert.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Danke.

Da zu PBOSL_OOP keine Seite in der (vorkompilierten) Hilfe existiert,
habe ich einfach mal in der Library nach den Befehlen gesucht. Sehe ich
das richtig, dass es sich hierbei nur um CallCom() und CallDX() handelt?
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Lars hat geschrieben:Da zu PBOSL_OOP keine Seite in der (vorkompilierten) Hilfe existiert,
Die Hilfe zu CallCOM/CallDX findest Du unter dem Punkt "Misc",
also "Verschiedenes".
Oder im PB-Editor F1 auf den beiden Befehlen (funktioniert leider
nicht mit den Tailbite-Libs).

Einige Punkte wurden in der Hilfe zusammengenommen, so
zum Beispiel CPUmonitor/CallCOM/CallDX/GetExeNameFromSuffix
und FastFile/FastFileCRC32/FastFileMD5/FastFileText.
Lars hat geschrieben: habe ich einfach mal in der Library nach den Befehlen gesucht.
Sehe ich das richtig, dass es sich hierbei nur um CallCom()
und CallDX() handelt?
Das ist richtig. Weitere OOP-Befehle kannst Du der Library
PBOSL_OOP gern hinzufügen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Danilo hat geschrieben:Die Hilfe zu CallCOM/CallDX findest Du unter dem Punkt "Misc",
also "Verschiedenes".
Oder im PB-Editor F1 auf den beiden Befehlen (funktioniert leider
nicht mit den Tailbite-Libs).
Arg, sorry, da hätte ich mal selber drauf kommen können. . .

Danilo hat geschrieben:Das ist richtig. Weitere OOP-Befehle kannst Du der Library
PBOSL_OOP gern hinzufügen.
Schau'n ma mal, ich fürchte, ich würde das nicht so wirklich sauber
hinkriegen. . .
Mir ging es aber primär darum, dass ich dachte, du hättest damit dieses
unfertige Projekt von vor einiger Zeit released ;)
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Danke @
Danilo
Rings
Joergen Ibsen
Mischa Brandt/Dige
Joachim Bauch
Kiffi
Sebastian Lackner
!
:allright:

Schade nur, dass mir das wie ein Abschiedsgeschenk vorkommt :(
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 »

:allright: Danke für Sharing, hab den Thread übersehen gehabt :oops: und es nochmal unter Ankündigungen gepostet, aber doppelt hält besser :)
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
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 »

Danilo hat geschrieben: Oder im PB-Editor F1 auf den beiden Befehlen (funktioniert leider
nicht mit den Tailbite-Libs).
Hab die Tailbite-Libs mal Neu kompiliert, so das die kontextsensitive Hilfe mit diesen auch funktioniert. Folgende Libs wurden von mir kompiliert (mit Tailbite 1.2 PR 1.1 PB 3.93):

Code: Alles auswählen

PBOSL_Bignum
PBOSL_CatchDebugOutput
PBOSL_CRYPTION
PBOSL_DDE
PBOSL_ExDataBase
PBOSL_ExPrinter
PBOSL_FastFileCRC32
PBOSL_FastFileMD5
PBOSL_FastFileText
PBOSL_GetExeNameFromSuffix
PBOSL_GlobalSharedMemory
PBOSL_NTLog
PBOSL_NTService
PBOSL_Process
PBOSL_SQLite3
PBOSL_VB_Helper
PBOSL_WINIO
Einfach über vorhandene Libs rüberkopieren (evtl. original Sichern)
Source ist keiner bei, da ja nichts geändert wurde :)

Download
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
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 »

Hab den Beispielcode von Kiffi für die PBOSL_SQLite3 mal angepaßt, sonst ist dieser nicht mehr lauffähig.

Code: Alles auswählen

Structure s_RecordSet
  BOF.l
  EOF.l
  Handle.l
  Rows.l
  Cols.l
  CurrentPos.l
  sValue.s
EndStructure

SQLite3_Init(); angepaßt von TS-Soft
; If SQLite3_InitLib("sqlite3.dll") = #False
  ; MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
  ; End
; EndIf

sDB.s = "sample.db"

dbHandler = SQLite3_CreateDatabase(sDB, 1)

If dbHandler = 0
  MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
  End
EndIf

; Test-Tabelle erstellen, um sie mit Test-Daten zu befüllen

sSQL.s = "Create Table TempData (fld0, fld1, fld2)"
SQLite3_Execute(sSQL, dbHandler)

zeit1= ElapsedMilliseconds()

; Transaktionen beschleunigen das Einfügen von Massendaten um ein vielfaches!
sSQL = "BEGIN TRANSACTION"
SQLite3_Execute(sSQL, dbHandler)

For intI = 0 To 999
  sSQL.s = "Insert Into TempData (fld0, fld1, fld2) Values ('value_0_" + Str(intI) + "', 'value_1_" + Str(intI) + "', 'value_2_" + Str(intI) + "')"
  SQLite3_Execute(sSQL, dbHandler)
Next intI

; Transaktion abschliessen
sSQL = "COMMIT"
SQLite3_Execute(sSQL, dbHandler)

zeit2= ElapsedMilliseconds()

DefType.s_RecordSet RS ; Recordset-'Objekt' deklarieren

; Anzahl der Datensätze ermitteln

If SQLite3_GetRecordset("Select Count(*) As Anz From TempData", dbHandler, @RS )
  
  If RS\Handle
    If SQLite3_GetRecordsetValueByName("Anz", @RS)
      Debug RS\sValue + " Datensätze in " + Str(zeit2-zeit1) + " Millisekunden eingefügt"
    Else
      MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
    EndIf
  EndIf
  
Else
  MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
EndIf

If SQLite3_GetRecordset("Select * From TempData Limit 5", dbHandler, @RS)
  
  Debug "Feldindex des Feldes mit dem Namen 'fld2': " + Str( SQLite3_GetFieldIndexByName("fld2", @RS) )
  
  If RS\Handle 
    
    ; Alle Datensätze vorwärts abklappen
    While RS\EOF = 0
      If SQLite3_GetRecordsetValueByName("fld0", @RS)
        Debug RS\sValue
      Else
        MessageRequester("", SQLite3_GetLastMessage())
      EndIf
      SQLite3_RecordsetMoveNext(@RS)
    Wend
    
    Debug "----------------------"
    
    ; Das ganze nun rückwärts
    While RS\BOF = 0
      If SQLite3_GetRecordsetValueByName("fld0", @RS)
        Debug RS\sValue
      Else
        MessageRequester("", SQLite3_GetLastMessage())
      EndIf
      SQLite3_RecordsetMovePrevious(@RS)
    Wend
    
    Debug "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
    
    ; Zum ersten Datensatz springen
    SQLite3_RecordsetMoveFirst(@RS)
    
    If SQLite3_GetRecordsetValueByName("fld0", @RS)
      Debug "Feldinhalt von Feld 'fld0' des ersten Datensatzes (ByName):"
      Debug RS\sValue
    Else
      MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
    EndIf
    
    If SQLite3_GetRecordsetValueByIndex(0, @RS)
      Debug "Feldinhalt von Feld 'fld0' des ersten Datensatzes (ByIndex):"
      Debug RS\sValue
    Else
      MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
    EndIf
    
    Debug "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
    
    ; Zum letzten Datensatz springen
    SQLite3_RecordsetMoveLast(@RS)
    If SQLite3_GetRecordsetValueByName("fld0", @RS)
      Debug "Feldinhalt von Feld 'fld0' des letzten Datensatzes:"
      Debug RS\sValue
    Else
      MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
    EndIf
    
    SQLite3_ReleaseRecordset(@RS)

  Else
    MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
  EndIf
   
Else
  MessageRequester("SQLite3-Demo", SQLite3_GetLastMessage())
EndIf
  
SQLite3_CloseDatabase(dbHandler)
SQLite3_End() ; angepaßt von TS-Soft
End 
[edit]hab gerade gemerkt, ist ja überflüssig gewesen, ist ja in den Examples mit bei. Hab die gerade erst gesichtet :oops: [/edit]
Zuletzt geändert von ts-soft am 08.07.2005 12:29, insgesamt 1-mal geändert.
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