[ FranjoZG @ 08.12.2022. 11:44 ] @
Nedavno sam poćeo koristiti svoje DLL-ove. Osnovni program je u D2007, a DLL-ove radim sa XE 10.1 Sada bi mi bilo zgodno cijelu jednu klasu prebaciti u DLL. Koliko je to pametno i kako pristupiti propery-ima? Mislio sam kreirati Interface. Definirati ga u DLL-u i Osnovnom programu. Pretpostavljam da property koji je string i dalje moram slati kao PCHar ili mogu: Code: NekiInterface.StringProperty := 'Neki moj string'; Molio bih savjet ako je netko do sada to radio. Da li se upoće upuštati u to? Ako je komplicirano, koristit ću txt file u kom ću slati DLL-u potrebne podatke. Iz te klase u DLL-a ne vraćam podatke, koristim ga kreiranje izvješća i neke ispise. FastReport je bolji od QR-a, pogotovo za tekstove i poravnanja, a moji klijetni pate na "lijep izgled". Te poravnato lijevo, te pravnato desno, te malo gore, te malo dolje... Evo što sam pronašao: DLL: Code: library StringFunctions; uses StringFunctions_IntfU; // use Interface-Deklaration {$R *.res} type TStringFunctions = class( TInterfacedObject, IStringFunctions ) protected function CopyStr( const AStr : WideString; Index : Integer; Count : Integer ) : WideString; end; { TStringFunctions } function TStringFunctions.CopyStr( const AStr : WideString; Index, Count : Integer ) : WideString; begin Result := Copy( AStr, Index, Count ); end; function GetStringFunctions : IStringFunctions; stdcall; export; begin Result := TStringFunctions.Create; end; exports GetStringFunctions; begin end. Main prog: Code: uses StringFunctions_IntfU; // use Interface-Deklaration // Static link to external function function GetStringFunctions : IStringFunctions; stdcall; external 'StringFunctions.dll' name 'GetStringFunctions'; procedure TMainView.Button1Click( Sender : TObject ); begin Label1.Caption := GetStringFunctions.CopyStr( Edit1.Text, 1, 5 ); end; Po ovome mogu slati u DLL direktno string (Edit1.Text)? Nije mi jasna funkcija u DLL-u "GetStringFunctions". Ne kreira li ona svaki put kad se pozove s novim ili drugim parametrom ponovno objekt od TStringFunctions? |