Wie verhält es sich den bei Lazarus mit der weitergabe von strings an eine dll/library und deren Zurückgabe? Bei Delphi ist dies ja mit einigen Umständen verbunden, wenn man keine Probleme bekommen will, und nicht Shortstring oder PChar verwenden will.
Ist das bei Lazarus ähnlich umständlich, oder kann man bedenkenlos einfache strings übergeben?
Und noch ne zweite Frage, die ich mal gleich mit Anhänge, wenn ich Plugins realisieren möchte, sollte man dort über dlls mit Formularen gehen, welche ich irgendwie einbinde, oder sollte man lieber gleich kleine Exen erstellen und diese entsprechend bei Bedarf ausführen und die nötigsten Parameter beim start übergeben?
Wie verhält es sich eigentlich mit Formularen in Dlls bei Lazarus?
DLLs Stringübergabe und Plugins.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Formaulare sind z.Z. nicht möglich soweit ich weiss es sei denn du gehst komplexere Wege. Strings zu übergeben würde ich auch nicht versuchen da Delphi/Lazarus Strings nunmal etwas sind was nicht standartkonform nach aussen ist. Zur Übergabe ist PChar schon ok so hast du auch ne ordentliche Schnittstelle die auch von C oder VB oder wasauch immer angesprochen werden kann.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Danke, auch wenn die DLL eh in keiner anderen Sprache gebraucht wird, weils zu speziell für mein Programm ist, werd ich PChar nehmen, da bin ich dann also auf der sicheren Seite.
Und meine Formulare haben sich dann auch erledigt, also kleine externe Exen, bei Bedarf.
//hab ich gerade noch gesehen
http://www.freepascal.org/mantis/view.php?id=7181" onclick="window.open(this.href);return false;
Und meine Formulare haben sich dann auch erledigt, also kleine externe Exen, bei Bedarf.
//hab ich gerade noch gesehen
http://www.freepascal.org/mantis/view.php?id=7181" onclick="window.open(this.href);return false;
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Und noch ein Problem, bei meinen Versuchen.
Wieso ist es nicht möglich, in ner DLL eine Ini auszulesen?
Sobald ich die Zeile mit ReadSection auskommentiere läuft alles Problemlos, aber warum kan man in der Dll keine Ini lesen bzw. was mach ich falsch?
Wieso ist es nicht möglich, in ner DLL eine Ini auszulesen?
Code: Alles auswählen
library project1;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, inifiles;
function TestDLL: PChar; stdcall;
var ini: TIniFile;
temp: TStrings;
begin
ini := TIniFile.Create('test.ini');
temp := TStrings.Create;
try
ini.ReadSection('test', temp); //<<<<Absturz
finally
ini.Free;
temp.Free;
end;
Result := PChar('Test gelungen');
end;
exports TestDLL;
begin
end.;