Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Funktion aus Unit in dll benutzen > "undef. Bezeichner" (https://www.delphipraxis.net/15494-funktion-aus-unit-dll-benutzen-undef-bezeichner.html)

Thorben86 29. Jan 2004 19:35


Funktion aus Unit in dll benutzen > "undef. Bezeichn
 
Hi, ich bin dabei ein programm zu schreiben, dass einen teil der funktionen in ne dll ausgelagert hat.
mein problem liegt nun dadrin, dass der in der dll eine funktion aufrufen soll benutzen soll, die aber in der unit des programms steckt, und nun gibt er mi rnur "undefinierter Bezeichner an". Hab schon versucht mit f_index. davor(name fer Form), klappt aber auch nit.

die funktion , die ich benötige heißt verschluesseln(rot). könnte natürlich diese Funktion auch in die dll schreiben, will ich aber nit, sonst ist der Sinn futsch.
Wie kann ich die Trotzdem aufrufen? :wiejetzt:

Code:
ini.WriteString(InttoStr(nummer),verschluesseln('Name'),verschluesseln(name));

:coder:

mirage228 29. Jan 2004 19:37

Re: Funktion aus Unit in dll benutzen > "undef. Beze
 
Du könntest der DLL einen Pointer auf die Procedure bzw. Function übergeben...

mfG
mirage228

Thorben86 29. Jan 2004 20:04

Re: Funktion aus Unit in dll benutzen > "undef. Beze
 
Und wie mach ich dass, bin nit so der Profi in delphi :wiejetzt:

d3g 29. Jan 2004 20:22

Re: Funktion aus Unit in dll benutzen > "undef. Beze
 
Delphi-Quellcode:
// in Programm und DLL
type
  TEncryptFunction = function(s: String): String:

// in der DLL
procedure InDLL(f: TEncryptFunction);
begin
  // ...
  ini.WriteString(IntToStr(nummer), f('Name'), f(name));
end;

// im Programm
function InDLL(f: TEncryptFunction); external 'my.dll' name 'InDLL';

function verschluesseln(s: String): String;

procedure InCallingProgram();
begin
  InDLL(verschluesseln);
end;
Hab ich jetzt nicht ausprobiert (und hab auch schon lange kein Object Pascal mehr programmiert), aber sollte funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz