Interface - Fragen
Re: Interface - Fragen
Ok ... Als Lesezeichen schonmal notiert... Ich sehe... Ich sehe.... Ich sehe.... viel Zeit vergehen im Googlen von Ausdrücken wie Polymorphie
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: Interface - Fragen
So fing ich mal an...
Link: http://www.purebasic.fr/german/viewtopic.php?f=8&t=7456
Link: http://www.purebasic.fr/german/viewtopic.php?f=8&t=7456
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Interface - Fragen
Die gute alte Zeit - Gabs damals schon Macros? Die haben eigentlich der ganzen OOP-Sache in PB imo etwas Schwung verliehen.mk-soft hat geschrieben:So fing ich mal an...
Link: http://www.purebasic.fr/german/viewtopic.php?f=8&t=7456
@bisonte
Der Text von TroaX dürfte - gerade auf hinblick auf PB - schon etwas Hardcore sein. Zumal viele Sachen in PB nicht unterstützt werden. Es gibt keine public/privat Sachen - alles ist Public wenn man so will (ok, die Member/Properties privat). Irgendwelche Operatoren kann man auch nicht überladen, Mehrfachvererbungen gehen auch nicht und so weiter und so fort. Wobei die Frage ist, ob sowas wirklich OOP ausmacht? Private Methoden kann man einfach mit einen Unterstrich markieren. Wer die dann außerhalb der Klasse benutzt, ist selbst Schuld.
Da du das ganze in PB ja manuell machst, siehst du zumindest sehr schön, was Technisch ein Objekt und Klasse tatsächlich ist. Böse ausgedrückt ist es eine Sammlung von Functionen, wo der erste Parameter immer das Objekt ist. Manche machen da ja Regelrechte Glaubenskriege draus, für mich ist das eher ein Werkzeug von vielen. Mal macht die klassische Programmierung mehr sinn, mal sehe ich OOP in Vorteil. Es kommt immer drauf an.
Wenn man sich bspw. eine Klasse für Dateizugriffe schreibst, dann hast du quasi immer eine Automatische Korrektur, ob du die richtigen Befehle benutzt. Bei der klassischen Programmierung kann man bspw. eine GadgetID versehentlich an eine Datei-Befehl als FileID weitergeben. Das ist bei OOP nicht mehr möglich. Zudem kann die IDE bei OOP die Methoden vorschlagen, praktisch, wenn man jetzt nicht mehr weis, ob es StringByteLength oder ByteLengthString heißt...
Wie schon mehrmals gesagt: Ich finds schade, das Fred keine gescheite Klassendefinition einbaut. Die Einzelteile sind ja vorhanden. Es fehlt nur der letzte Schritt und es wäre sauber implantiert.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: Interface - Fragen
@mk: genau mit diesem Post hab ich angefangen zu experimentieren
Also das das nicht immer Sinn macht, ist klar. Aber gerade weil man nach dem eingeben des Pointers in der Autovervollständigung
der IDE sieht, was jetzt möglich ist, finde ich das etwas "flexibler" für Teamarbeiten. Wo der eine so ein Interface baut, der andere
gar nichts drüber wissen muss und diese Möglichkeiten gleich sieht.
Wie oft haperte es an so kleinen Dingen weil einem der Befehl nicht einfiel....
Besonders bei CustomGadgets oder ... womit ich experimentiert habe, für ein SQLite "Interface" ist das sehr praktisch. Deshalb
wollte ich das mal etwas vertiefen... Damit ich auch den letzten bei uns hier zu PB überredet kriege
Edit:
Und man muss ja nicht gleich ne Fremdwörterschlacht losreissen...
Solange ich weiss was da wo passiert und warum, sind mir die genauen
Bezeichnungen eigentlich schnuppe... die kommen schon noch
Also das das nicht immer Sinn macht, ist klar. Aber gerade weil man nach dem eingeben des Pointers in der Autovervollständigung
der IDE sieht, was jetzt möglich ist, finde ich das etwas "flexibler" für Teamarbeiten. Wo der eine so ein Interface baut, der andere
gar nichts drüber wissen muss und diese Möglichkeiten gleich sieht.
Wie oft haperte es an so kleinen Dingen weil einem der Befehl nicht einfiel....
Besonders bei CustomGadgets oder ... womit ich experimentiert habe, für ein SQLite "Interface" ist das sehr praktisch. Deshalb
wollte ich das mal etwas vertiefen... Damit ich auch den letzten bei uns hier zu PB überredet kriege
Edit:
Und man muss ja nicht gleich ne Fremdwörterschlacht losreissen...
Solange ich weiss was da wo passiert und warum, sind mir die genauen
Bezeichnungen eigentlich schnuppe... die kommen schon noch
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: Interface - Fragen
Gibt es da irgendein Problem oder Bug mit Modulen in DLLs?mk-soft hat geschrieben:Die BaseClass ist ein wenig gewachsen...
- Kompatible zu IUnknown
- Threadsafe
- Methodennamen für späte Bindung (IDispatch)
- Kapsel alles in Procedure weil sonst bei Modulen der Code als DLL abstürzt
- etc
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Re: Interface - Fragen
Laut https://www.purebasic.com/german/docume ... e/dll.html
leider gibt der Compiler da keine Fehlermeldung aus, sondern die DLL schmiert einfach ab.- Die Deklaration von Arrays, Listen bzw. Maps mittels Dim, NewList bzw. NewMap muss stets innerhalb der Prozedur AttachProcess erfolgen.
- Schreiben Sie keinen Programmcode außerhalb von Prozeduren. Als Ausnahmen erlaubt sind lediglich Variablen- oder Strukturen-Deklarationen.
- DirectX Initialisierungsroutinen dürfen nicht innerhalb der AttachProcess Prozedur geschrieben werden.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: Interface - Fragen
Die Procedure InitModule() wir vor den Aufruf der Procedure AttachProcess(Instanse) bei Dll´s aufgerufen.
Funktioniert sicher.
Funktioniert sicher.
Code: Alles auswählen
DeclareModule MyModule
;TODO
EndDeclareModule
Module MyModule
Procedure InitModule()
Debug "Init My Module!"
;TODO
EndProcedure : InitModule()
EndModule
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Interface - Fragen
Öh, wo ist das denn beschrieben oO
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: Interface - Fragen
Steht nirgendwo...
Ist aber so seit es Module gibt.
P.S. Genauer gesagt wird alles in der internen Funktion PB_DllInit aufgerufen.
Ist aber so seit es Module gibt.
P.S. Genauer gesagt wird alles in der internen Funktion PB_DllInit aufgerufen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Interface - Fragen
Sollte man vielleicht Fred drauf hinweisen, dass das Dokumentiert gehört.
Die Procedure wird übrigens auch ohne DLL-Erzeugung immer aufgerufen.
Die Procedure wird übrigens auch ohne DLL-Erzeugung immer aufgerufen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!