Pour des objets de l'encapsulation DLL spécifiques, veuillez vous référer à la technologie «DLL ENCAPSOLATION ET APPEL DE LIU YI dans Delphi» et au code source du livre.
J'ai rencontré des problèmes étranges dans le processus de compilation DLL à l'aide de Delphi.
1. Le projet DLL généré par Delphi écrit: ShareMem doit être la première unité de la clause d'utilisation de votre bibliothèque et celle de votre projet. Il est mentionné ici que les projets DLL et les projets utilisant la DLL doivent faire référence à l'unité ShareMem.
Il est préférable d'ajouter des unités ShareMem au projet, car en usage réel, il est constaté que parfois les objets sont passés entre le projet et la DLL à utiliser.
2. Définition Problème de l'appel Fonction DLL:
Lorsque la sortie dans DLL: fonction ABC: iInterface;
Les appels de fonction sont définis comme suit dans le programme:
taper
Tfunc = fonction: iInterface;
Une erreur étrange se produira, qui devrait être définie comme la même que celle définie dans la DLL:
taper
Tfunc = function: iInterface;
3. Lorsque vous utilisez l'interface dans la DLL, n'oubliez pas de le définir sur nil avant que l'objet ne soit libéré dans la DLL après utilisation;
4. Débogage des DLL dans Delphi: Je rencontre souvent le problème que je ne peux pas ajouter de points d'arrêt lors de la débogage des DLL. Vérifiez les paramètres de la DLL, si le chemin de sortie de la DLL compilée est le même que le paramètre de chemin de programme principal qui appelle la DLL, et devrait être un chemin absolu;
5. Dans "Encapsulation DLL et appelant la technologie des objets à Delphi", la principale limitation de la DLL sur les objets d'encapsulation est
?? 1. L'application appelant la DLL ne peut utiliser la méthode de liaison dynamique
2 . .
3 et 3 . .
Il ne semble pas y avoir une telle restriction sur la façon d'utiliser des objets dans le programme principal des DLL, je me demande pourquoi?