Objet permettant de charger une DLL est d'utiliser les fonctions la composant.
Source / Exemple :
Dans le ZIP
Conclusion :
Utilisation :
- il suffit de dériver la classe TLoadDll comme ci-dessous :
// Objet permettant d'accéder à Exemple.DLL
TLoadDLLExemple = class(TLoadDll)
protected
procedure FreeLibrary; override;
procedure LoadLibrary; override;
Public
GetFunction1: Function: boolean; stdcall ;
GetFunction2: Function: boolean; stdcall ;
constructor Create(AOwner: TComponent); override;
end;
implementation
{ TLoadDLLExemple }
constructor TLoadDLLExemple.Create(AOwner: TComponent);
begin
inherited;
if not (csDesigning in ComponentState) then
// chargement de la DLL
Dll:= 'EXEMPLE.DLL';
end;
procedure TLoadDLLExemple.FreeLibrary;
begin
@GetFunction1:= nil;
@GetFunction1:= nil;
inherited;
end;
procedure TLoadDLLExemple.LoadLibrary;
begin
inherited;
// fonction1 et fonction2 sont les noms dans la DLL
@GetFunction1:= GetFunction('fonction1');
@GetFunction1:= GetFunction('fonction2');
end;
12 juin 2007 à 16:21
Je suis en train de développer un outil en delphi dans le monde télécom,je dois aller chercher un paramétre d'une méthode de l'objet com écrit en vb pour l'encapsuler dans mon code delphi.Comment dois-je m'y prendre?Avec plus détails svp!
Bien à vous.
MKB.
2 nov. 2004 à 16:55
Personnellement, je déclare toujours des fonctions du genre:
type TDLLEvent = procedure(LesParamètres) of object;
Et après je fais des appels. FARPROC fait un peu C++, et je n'utilise jamais ce mot explicitement. Pour l'utilisation que je fais de LoadLibrary, GetProcAdress et FreeLibrary, c'est suffisant. En écrivant ça, on sait pertinemment ce qu'on appelle.
Si on a "var Proced : TDLLEvent;" on aura pour pointer la procédure le code "@Proced:=GetProcAdress(...);"
La classe de MHI cache l'essentiel, et est a priori fonctionnelle. On pourra toujours consulter le code source d'Ancestrologie.com, car c'est là que j'ai appris comment tout cela fonctionne, et je l'en remercie.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.