Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Besten Dank für die Erweiterungen, mk-soft.
Habe meine lokale Kopie Deines Moduls aktualisiert.
Edit:
Ich habe Dein aktuelles Beispiel nun mal ausprobiert.
Ist die Aktivierung der Compileroption "Threadsichere Exe erzeugen" Pflicht - oder sollte Dein Beispiel auch ohne diese Option laufen?
Ohne die Option schmiert das Beispiel nämlich ab (Win7 x64, PB 5.51 64 Bit Compiler):
[14:37:44] Warte auf den Start des Executable...
[14:37:44] Executable-Typ: Windows - x64 (64bit, Unicode)
[14:37:44] Executable gestartet.
[14:37:44] [Debug] Mainscope Create Object
[14:37:44] [Debug] Initialize Work
[14:37:44] [Debug] Start Threads
[14:37:47] Das mit dem Debugger getestete Executable endete unerwartet.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?" PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520 Useralter in 2024: 56 Jahre.
Update v1.26
- Hinzugefügt: QuerInterface für Kompatibilität zu Interface 'IUnknown'
-- Das Standardergebnis von QuerInterface ist die Konstante '#E_NoInterface' um für Linux und Mac kompatibel zu bleiben
-- Um die Methode 'QuerInterface' mit 'AsNewMethode' zu managen siehe das Beispiel 10 an. Link: http://www.purebasic.fr/english/viewtop ... 05#p503757
- Geändert: RefCounter beginnt jetzt mit Null
Update v1.27
- Bugfix BaseClass als DLL: Über Macros erstelle Codes in Prozeduren gekapselt, da auf machen Windows 7 (x64) Maschinen es zum Absturz führte
- Code bereinigt und interne Namen geändert
Hiho, ich hab mir gerade mal den Quellcode angeschaut und hätte zwei Fragen:
a) Seh ich das richtig, das es keine Copy-Konstruktoren gibt?
Können praktisch sein, wenn man bspw. ein Image in der Klasse gespeichert hat. Mit einen Copy-Konstruktor kann man dafür sorgen, dass das neue Objekt nicht auf das Original-Image verweist, sondern davon auch eine Kopie erstellt.
b) Reihenfolge der Konstruktoren/Destruktoren
Wenn ich richtig sehe, werden beide in der gleichen Reihenfolge aufgerufen.
Wenn meine Informationen nicht falsch sind, sollte ein Konstruktor in der Reihenfolge ParentClass,ChildClass aufgerufen werden und die Destruktoren umgekehrter Reihenfolge, also ChildClass, dann ParentClass. Mag zwar in 99% der Fälle keinen Unterschied machen, könnte aber eventuell mal praktisch sein.