DLL
Re: DLL
Hallo Kaktus,
mir geht es mit Basic wie MikeD ... ...
Ich habe das Projekt mal angehangen (die DLL konnte ich leider nicht beilegen, da die max. erlaubte Dateigröße 256kB ist). Das Projekt ist im Prinzip die Umsetzung der Delphi-DPR (bei Lazarus hat sie die Endung LPR). Was noch nicht funktioniert ist der Config-Dialog ... da habe ich allerdings jetzt im Moment weder Zeit noch Lust den Fehler zu suchen ... ... die eigentliche DLL funktioniert anscheinend genauso wie das Original.
Gruß Step
mir geht es mit Basic wie MikeD ... ...
Ich habe das Projekt mal angehangen (die DLL konnte ich leider nicht beilegen, da die max. erlaubte Dateigröße 256kB ist). Das Projekt ist im Prinzip die Umsetzung der Delphi-DPR (bei Lazarus hat sie die Endung LPR). Was noch nicht funktioniert ist der Config-Dialog ... da habe ich allerdings jetzt im Moment weder Zeit noch Lust den Fehler zu suchen ... ... die eigentliche DLL funktioniert anscheinend genauso wie das Original.
Gruß Step
- Dateianhänge
-
- Counter.zip
- (1.92 KiB) 380-mal heruntergeladen
Re: DLL
@Kaktus:Mit FreeBASIC für Windows kann man echte Einsprungspunkt-DLLs (DLL = Dynamic Link Library) erstellen,...
Das stimmt soweit auch. Ich habe mir das einmal ein bischen angeschaut. Das wirklich Dumme dabei ist, dass der FreeBasic-Compiler so seine Eigenarten hat, was letzlich dazu führt, dass ProfiLab die Funktionen nicht erkennen kann.
- Funktionsnamen wie z.B. 'NumInputs' benennt der Compiler selbsttätig in 'NumInputs@0' um.
- Bestimmte Parameter-Datentypen wie z.B. 'Byte', werden einfach in 32-Bit Integer konvertiert, ob man will oder nicht.
- Nachzulesen hier... http://rapidq.phatcode.net/tutorial/Fre ... orial.html
Fazit: Es geht mit Freebasic leider auch nicht, ohne dass ProfiLab von uns speziell dafür angepasst würde.
ABACOM support
Re: DLL
Hallo,
und es geht doch mit FreeBasic, na sagen wir mal teilweise und mit einem Trick.
Hab mir die Rübe zerbrochen weil mir auch aufgefallen war, dass FB beim exportieren ein @ mit einer Zahl dranhängt. Bin dann im FB - Forum auf einen Trick gestoßen. Wenn man die DLL mit einem Hexeditor öffnet, kann man das @ und die Zahl durch 0,en ersetzen. Danach werden die Funktionen von PL erkannt. Wenn ich die Counter DLL von DevC++ mit dem Hexeditor öffne, ist dort auch bei den Funktionen ein @ mit einer Zahl drangehängt. Allerdings wird dort auch wohl noch ein Unterstrich vorgestellt. Keine Ahnung warum es da geht.
Die Pin – Bezeichnungen gehen noch nicht. NumInputs, NumOutputs und Calculate funktionieren bis jetzt mit einem einfachen Beispiel.
Bis dann
habe
und es geht doch mit FreeBasic, na sagen wir mal teilweise und mit einem Trick.
Hab mir die Rübe zerbrochen weil mir auch aufgefallen war, dass FB beim exportieren ein @ mit einer Zahl dranhängt. Bin dann im FB - Forum auf einen Trick gestoßen. Wenn man die DLL mit einem Hexeditor öffnet, kann man das @ und die Zahl durch 0,en ersetzen. Danach werden die Funktionen von PL erkannt. Wenn ich die Counter DLL von DevC++ mit dem Hexeditor öffne, ist dort auch bei den Funktionen ein @ mit einer Zahl drangehängt. Allerdings wird dort auch wohl noch ein Unterstrich vorgestellt. Keine Ahnung warum es da geht.
Die Pin – Bezeichnungen gehen noch nicht. NumInputs, NumOutputs und Calculate funktionieren bis jetzt mit einem einfachen Beispiel.
Bis dann
habe
- Dateianhänge
-
- Test.rar
- (3.27 KiB) 328-mal heruntergeladen
Re: DLL
Also ich habe noch mal die Umsetzung in LAZARUS (neueste Version) überprüft.
Es funktioniert bis auf den Config-Dialog, da ist der alte Bug wohl noch nicht beseitigt.
Graphische Elemente (also auch der Config-Dialog) sind wohl aus einer DLL nicht aufrufbar.
Für Bauteile ohne Configuration, ist das aber möglich. Anbei mal das einfachste Beispiel:
Ein Eingang (E), ein Ausgang (A). A = E + 1;
Gruß BKGMX
Es funktioniert bis auf den Config-Dialog, da ist der alte Bug wohl noch nicht beseitigt.
Graphische Elemente (also auch der Config-Dialog) sind wohl aus einer DLL nicht aufrufbar.
Für Bauteile ohne Configuration, ist das aber möglich. Anbei mal das einfachste Beispiel:
Ein Eingang (E), ein Ausgang (A). A = E + 1;
Gruß BKGMX
- Dateianhänge
-
- inc.zip
- (98.11 KiB) 351-mal heruntergeladen
Re: DLL
Mike, da muss ich dir recht geben!!!
Früher da war VB etwas eigenständiges, einfaches, für einfache Projekte und unerfahrene Programmierer geeignetes. Aber dann wurde es ab VB7 aufgepropft und ist nichts anderes mehr als C#, nur mit ein bissl einer anderen Syntax und vielen Einschränkungen.
Also, liebe VBler: ich bin schon 5 mal total umgestiegen, warum macht ihrs nicht einmal?
Knox duckt sich weg und liest hier nichts mehr
Früher da war VB etwas eigenständiges, einfaches, für einfache Projekte und unerfahrene Programmierer geeignetes. Aber dann wurde es ab VB7 aufgepropft und ist nichts anderes mehr als C#, nur mit ein bissl einer anderen Syntax und vielen Einschränkungen.
Also, liebe VBler: ich bin schon 5 mal total umgestiegen, warum macht ihrs nicht einmal?
Knox duckt sich weg und liest hier nichts mehr
Re: DLL
Moin,
habe nochmal versucht eine DLL mit FreeBasic zu erstellen.
Habs jetzt hinbekommen ohne dass man die DLL mit einem Hex Editor bearbeiten muss.
Soweit ich das jetzt getestet habe, funktioniert alles.
FreeBasic Version 0.23.0
http://www.freebasic-portal.de/download ... s-199.html
IDE: FBEdit 1.0.7.6c
http://www.freebasic-portal.de/download ... de-30.html
Befehlsreferenz
http://www.freebasic-portal.de/befehlsreferenz/
Ergänzung:
Ich habe eine Zustaz-DLL mit PowerBasic erstellt.
Beim betätigen der Schaltfläche Einstellung im Eigenschaftendialog des DLL-Bauteils wird mit dieser Zusatz-DLL ein Dialogfenster aufgerufen.
Darüber können dann 5 Wert an die ProfiLab DLL übergeben werden.
Warum das ganze: Mit FreeBasic lassen sich nur schwer Dialogfenster erstellen.
habe nochmal versucht eine DLL mit FreeBasic zu erstellen.
Habs jetzt hinbekommen ohne dass man die DLL mit einem Hex Editor bearbeiten muss.
Soweit ich das jetzt getestet habe, funktioniert alles.
FreeBasic Version 0.23.0
http://www.freebasic-portal.de/download ... s-199.html
IDE: FBEdit 1.0.7.6c
http://www.freebasic-portal.de/download ... de-30.html
Befehlsreferenz
http://www.freebasic-portal.de/befehlsreferenz/
Ergänzung:
Ich habe eine Zustaz-DLL mit PowerBasic erstellt.
Beim betätigen der Schaltfläche Einstellung im Eigenschaftendialog des DLL-Bauteils wird mit dieser Zusatz-DLL ein Dialogfenster aufgerufen.
Darüber können dann 5 Wert an die ProfiLab DLL übergeben werden.
Warum das ganze: Mit FreeBasic lassen sich nur schwer Dialogfenster erstellen.
- Dateianhänge
-
- UserForm.rar
- (33.83 KiB) 421-mal heruntergeladen
-
- Test.rar
- (5.75 KiB) 379-mal heruntergeladen
Zuletzt geändert von habe am Montag 15. August 2011, 16:26, insgesamt 1-mal geändert.
Re: DLL
Guten Morgen,
eine weitere Möglichkeit zur Herstellung von DLLs für PL bietet sich mit Euphoria (www.rapideuphoria.com) an, einer freien Programiersprache (leitungsfähiger Interpreter). Sie hat u.a. einen Translator (eu2c), welcher C Code liefert. Dieser kann mittels dem Open Watcom Compiler (www.openwatcom.org) zu einer DLL kompiliert werden.
Bei Interesse kann ich die Sache etwas erläutern.
Viele Grüsse von Thomas
eine weitere Möglichkeit zur Herstellung von DLLs für PL bietet sich mit Euphoria (www.rapideuphoria.com) an, einer freien Programiersprache (leitungsfähiger Interpreter). Sie hat u.a. einen Translator (eu2c), welcher C Code liefert. Dieser kann mittels dem Open Watcom Compiler (www.openwatcom.org) zu einer DLL kompiliert werden.
Bei Interesse kann ich die Sache etwas erläutern.
Viele Grüsse von Thomas
Curiousity makes us progress !