Bonjour,
Après des heures de recherches infructueuses sur le net je me tournve vers vous comme ultime solution.. A titre informatif, j'utilise Delphi 7.
Je souhaite faire une appli liée a un WebService mais ne pas avoir à faire évoluer le .exe si le WebService évolue.
Je me suis donc orienté vers une DLL car je préfère faire évoluer une DLL qu'un Exe pour des raisons de maintenance. A Noter la DLL devra être chargée dynamiquement.
J'ai commencé par utiliser Delphi pour générer une unité via le lien WSDL du WebService (Importateur WSDL). A partir de là j'ai commencé ma DLL.
Je me pose cependant quelques question sur la faisabilité de la chose.
En parcourant les tutos j'ai eu l'impression que pour utiliser une DLL il fallait avoir une sorte de "moule" dans mon exe.
Par exemple :
1) Ma DLL possède une fonction "function Somme(a , b : Integer) : Integer;"
2) Pour l'appeler dynamiquement je vais devoir déclarer un type "TMyFunc = function(a, d : Integer) : Integer; stdcall;" (ce que j'appelle le "moule") pour ensuite passer un pointeur provenant de la DLL à un objet de type TMyFunc. Non?
J'espère être clair.
De la même manière pour les objets, j'ai cru comprendre que pour utiliser ces derniers il me faut :
1) Un objet similaire à celui de ma DLL dans mon Exe
2) Créer une fonction qui renvoie un pointer de l'objet de ma DLL pour alimenter l'objet de l'exe.
Du coup, j'ai plusieurs zones d'ombre:
-Si le fonctionnement est cloisonné comme présenté ci-dessus, quel intérêt aux DLL ?
Car si demain la fonction Somme de la DLL prend des Double au lieu des Integer en arguments et en retour, je suppose que je dois recompiler un exe pour mettre à jour le TMyFunc ?
-Ce que je voudrai ce serait que si la fonction ou l'objet évolue dans la DLL on n'ai pas besoin d'évoluer l'exe. Est-ce seulement possible ?
-Dernière question, j'ai vu quelques tutoriels parler de méthodes d'objets mais aucun de propriétés qu'en est-il sur ce point là, faut-il déclarer des méthodes getter/setter ? ou le READ/WRITE de la propriété suffit ?
Merci à vous !
Partager