JHRegistry_xxx Library aktualisiert für PB5.40
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
So, neue Version Online:
- optionale Fehlerrückgabe
- 3 neue Funktionen
@TS,
es gibt wohl einige Funktionen, wo der Wert wirklich 0 annehmen kann oder
gar negativ ist. Soweit so gut. Mit dieser Version kann man die Fehlerrückgabe
entsprechend unterdrücken. Einfach das Flag weglassen oder auf 0 setzen.
Mit den Fehlern in eine eigene Variable geht nicht, das wird nach der Wandlung
in eine Lib unterbunden, egal wo du die Variable auf Global stellst.
Gruß Jens
- optionale Fehlerrückgabe
- 3 neue Funktionen
@TS,
es gibt wohl einige Funktionen, wo der Wert wirklich 0 annehmen kann oder
gar negativ ist. Soweit so gut. Mit dieser Version kann man die Fehlerrückgabe
entsprechend unterdrücken. Einfach das Flag weglassen oder auf 0 setzen.
Mit den Fehlern in eine eigene Variable geht nicht, das wird nach der Wandlung
in eine Lib unterbunden, egal wo du die Variable auf Global stellst.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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
Wieviele Libs soll ich aufzählen, die es so machensharkpeter hat geschrieben: Mit den Fehlern in eine eigene Variable geht nicht, das wird nach der Wandlung
in eine Lib unterbunden, egal wo du die Variable auf Global stellst.
Gruß Jens
Zum Beispiel SQLite3 von Kiffi. Hier ein Beispielcode, der geht mit Tailbite
Code: Alles auswählen
Enumeration ; Error
#Error_OK ; 0
#Error_Schwachsinn
EndEnumeration
Global FehlerMeldung.s
Global FehlerNummer.l
ProcedureDLL.s GetMyLastErrorMsg()
ProcedureReturn FehlerMeldung
EndProcedure
ProcedureDLL GetMyLastErrorNr()
ProcedureReturn FehlerNummer
EndProcedure
ProcedureDLL Bla()
FehlerMeldung = ""
FehlerNummer = 0
; Code
If Error
FehlerMeldung = "So ein schwachsinn"
FehlerNummer = #Error_Schwachsinn
EndIf
EndProcedure
Gruß
Thomas
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
und hast du es selber mal ausprobiert? Nein?
Wenn doch so hättest du merken müssen, das egal wo du die "Fehler"
als globale Variable deklarierst deren Inhalt nicht zurückgegeben wird.
Dabei ist es vollkommen egal, ob du innerhalb der Lib die Variablen Global
setzt, dies außerhalb tust oder ob du hingehst und sagst, OK, ich mache die
in meinem eigenen Code Global und innerhalb der Procedure wird sie
beschrieben mit dem entsprechenden Inhalt.
Am besten kannst du das sehen, wenn du eine Variable als String deklarierst.
Er wird nach der Abfrage Leer sein.
Und das mit den Konstanten kannst du offenbar auch knicken.
Und zu Unicode, zum Glück geht das mit TB noch nicht, sonst hätte ich ja
noch mehr Arbeit
Gruß Jens
und hast du es selber mal ausprobiert? Nein?
Wenn doch so hättest du merken müssen, das egal wo du die "Fehler"
als globale Variable deklarierst deren Inhalt nicht zurückgegeben wird.
Dabei ist es vollkommen egal, ob du innerhalb der Lib die Variablen Global
setzt, dies außerhalb tust oder ob du hingehst und sagst, OK, ich mache die
in meinem eigenen Code Global und innerhalb der Procedure wird sie
beschrieben mit dem entsprechenden Inhalt.
Am besten kannst du das sehen, wenn du eine Variable als String deklarierst.
Er wird nach der Abfrage Leer sein.
Und das mit den Konstanten kannst du offenbar auch knicken.
Und zu Unicode, zum Glück geht das mit TB noch nicht, sonst hätte ich ja
noch mehr Arbeit
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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
Funktioniert einwandfrei:
Hier der Code zum Testen:
Speichern und TailBiten
anschließend:
und der Debugger sagt:
Hier der Code zum Testen:
Code: Alles auswählen
Enumeration ; Error
#Error_OK ; 0
#Error_Schwachsinn
EndEnumeration
Global FehlerMeldung.s
Global FehlerNummer.l
ProcedureDLL.s GetMyLastErrorMsg()
ProcedureReturn FehlerMeldung
EndProcedure
ProcedureDLL GetMyLastErrorNr()
ProcedureReturn FehlerNummer
EndProcedure
ProcedureDLL Bla()
FehlerMeldung = "Hallo Jens"
FehlerNummer = 0
; Code
If Error
FehlerMeldung = "So ein schwachsinn"
FehlerNummer = #Error_Schwachsinn
EndIf
EndProcedure
anschließend:
Code: Alles auswählen
Bla()
Debug GetMyLastErrorMsg()
PureBasic-Debugger hat geschrieben:Hallo Jens
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- 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
>> Und zu Unicode, zum Glück geht das mit TB noch nicht
Aber man kann sich behelfen, wie ich bereits mehrmals gepostet habe, so
das die Lib auch unter Unicode zumindestens die ASCII-Zeichen zurückgibt.
Ich hab im moment nur ein Projekt, das ist UNICODE, deswegen nutze ich
auch überwiegend Include-Dateien, weil UserLibs im moment unsinnig sind.
Aber man kann sich behelfen, wie ich bereits mehrmals gepostet habe, so
das die Lib auch unter Unicode zumindestens die ASCII-Zeichen zurückgibt.
Ich hab im moment nur ein Projekt, das ist UNICODE, deswegen nutze ich
auch überwiegend Include-Dateien, weil UserLibs im moment unsinnig sind.
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
so habe ich es noch nicht probiert. Aber so hast du recht.
Also wird die Lib bzw. alles was dort deklariert ist in sich als geschlossenes
System behandelt. Abgesehen von den Procedure Rückgaben dringt nichts
nach außen.
Hättest du doch gleich sagen können , (lache mich gerade tot nebenher.)
So, nun hast du gewonnen und bekommst die Lib demnächst mit den einzelnen
Sachen, Rückgabe und Fehler separat. Scheiße, jetzt habe ich doch wieder
Arbeit am Hals und ich wollte mal mit anderen Sachen weitermachen.
Gruß Jens
so habe ich es noch nicht probiert. Aber so hast du recht.
Also wird die Lib bzw. alles was dort deklariert ist in sich als geschlossenes
System behandelt. Abgesehen von den Procedure Rückgaben dringt nichts
nach außen.
Hättest du doch gleich sagen können , (lache mich gerade tot nebenher.)
So, nun hast du gewonnen und bekommst die Lib demnächst mit den einzelnen
Sachen, Rückgabe und Fehler separat. Scheiße, jetzt habe ich doch wieder
Arbeit am Hals und ich wollte mal mit anderen Sachen weitermachen.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- 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
Das ist der größte Vorteil von UserLibs, sie haben einen eigenen globalensharkpeter hat geschrieben: Also wird die Lib bzw. alles was dort deklariert ist in sich als geschlossenes
System behandelt. Abgesehen von den Procedure Rückgaben dringt nichts
nach außen.
Hättest du doch gleich sagen können , (lache mich gerade tot nebenher
Scope. Wenn Du das nicht wußtest, wozu dann UserLibs? Nur wegen der
Syntaxvorschau
Alle was in einer UserLib global deklaiert wird, ist auch nur dort gültig, wie bei
normalen DLLs auch. Nur was Du exportierst per ProcedureDLL ist für den
Anwender unmittelbar erreichbar.
Diese Tatsache ist z.B. sehr wichtig für OOP, weil ansonsten ja eine echte
Kapselung in PB nicht möglich ist.
Gruß
Thomas
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
nein, zugegeben das habe ich nicht gewußt. aber geahnt. Aber diese
Tatsache steht in meiner Unterschrift
Die Syntaxvorschau hast du auch schon wenn du nur ProcedureDLL xyz()
schreibst, also das war es nicht.
Gruß Jens
nein, zugegeben das habe ich nicht gewußt. aber geahnt. Aber diese
Tatsache steht in meiner Unterschrift
Die Syntaxvorschau hast du auch schon wenn du nur ProcedureDLL xyz()
schreibst, also das war es nicht.
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten:
@TS,
es ist vollbracht. Fehlermeldung getrennt von den Rückgaben.
@All
Update auf Version 2.02
- getrennte Fehlermeldung
- englische Hilfe (im deutschen File)
Gruß Jens
es ist vollbracht. Fehlermeldung getrennt von den Rückgaben.
@All
Update auf Version 2.02
- getrennte Fehlermeldung
- englische Hilfe (im deutschen File)
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64
Nichts wissen macht nichts, sich dumm stellen aber schon.
Nichts wissen macht nichts, sich dumm stellen aber schon.
- sharkpeter
- Beiträge: 474
- Registriert: 29.08.2004 16:18
- Wohnort: Dresden
- Kontaktdaten: