DLL

Step
Beiträge: 87
Registriert: Dienstag 14. Oktober 2008, 14:25

Re: DLL

Beitrag von Step » Donnerstag 25. Februar 2010, 10:10

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
Dateianhänge
Counter.zip
(1.92 KiB) 292-mal heruntergeladen

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: DLL

Beitrag von abacom » Donnerstag 25. Februar 2010, 14:07

Mit FreeBASIC für Windows kann man echte Einsprungspunkt-DLLs (DLL = Dynamic Link Library) erstellen,...
@Kaktus:

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. :cry:
ABACOM support

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: DLL

Beitrag von KAKTUS » Donnerstag 25. Februar 2010, 19:31

@ALL

Danke !

So bleibt dann wohl, wenn ich dass richtig sehe, als einziges LAZARUS übrig, wenn es nix kosten soll.
stachlige Grüße, Kaktus

habe
Beiträge: 36
Registriert: Samstag 18. Oktober 2008, 18:51

Re: DLL

Beitrag von habe » Donnerstag 25. Februar 2010, 20:40

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
Dateianhänge
Test.rar
(3.27 KiB) 277-mal heruntergeladen

BKGMX
Beiträge: 132
Registriert: Montag 7. Dezember 2009, 10:37
Wohnort: Berlin

Re: DLL

Beitrag von BKGMX » Freitag 26. Februar 2010, 01:33

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
Dateianhänge
inc.zip
(98.11 KiB) 298-mal heruntergeladen

knox
Beiträge: 13
Registriert: Samstag 28. November 2009, 16:56
Wohnort: Nähe KA, aber Pfalz

Re: DLL

Beitrag von knox » Freitag 26. Februar 2010, 09:14

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 :mrgreen:

habe
Beiträge: 36
Registriert: Samstag 18. Oktober 2008, 18:51

Re: DLL

Beitrag von habe » Freitag 12. August 2011, 18:33

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.
Dateianhänge
UserForm.rar
(33.83 KiB) 322-mal heruntergeladen
Test.rar
(5.75 KiB) 288-mal heruntergeladen
Zuletzt geändert von habe am Montag 15. August 2011, 16:26, insgesamt 1-mal geändert.

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: DLL

Beitrag von tom_g » Montag 15. August 2011, 05:23

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
Curiousity makes us progress !

Antworten

Zurück zu „DLL-Programmierung“