Utilisation de la fonction LoadLibrary == Visual C++ - C++ - Programmation
Marsh Posté le 08-01-2003 à 07:43:49
jibolin77 a écrit : |
Je pense qu'ils doivent parler de leur fonction 'DllMain', mais celle-ci est appelée automatiquement si elle est instrumentée ( comme les fonctions _init et _fini sous unix ). Aucun besoin d'une autre fonction d'init que je sache...
En lisant ton poste, j'ai l'impression que pour chaque fonction, tu fais un LoadLibrary+GetProcAddress. C'est bien cela?
Marsh Posté le 08-01-2003 à 07:32:58
Bonjour à tous, et merci d'avance pour vos réponses et conseils éclairés.
Je fabrique actuellement des DLL qui contiennent, non pas des objets ou des classes, mais simplement des fonctions exportables vers d'autres DLL ou applicatifs.
Je précise que je n'utilise absolument pas de MFC.
Exemple, soit une fonction "float somme(float &a, float &b)".
Je crée une DLL nommée somme, à l'intérieur de laquelle on trouve la fonction exportée somme.
(l'exportdes fonctions se fait par le biais d'un fichier .def de cette façon, j'exporte des fonctions au format C, et non au format C++, (pas de @@@@@@ lors de l'aperçu rapide des fonctions exportées sosu Windows).
Le programme appelant ces différentes fonctions utilise un chargement dynamique des DLL (LoadLibrary, puis GetProcAddress).
Les chargements se déroulent correctement, si ce n'est que lorsque le nombre de fonctions à charger en mémoire devient important (36), la dernière fonction ne se charge plus).
Le code d'erreur retourné par LoadLibrary est 1114, ce qui correspond à :
"A dynamic link library (DLL) initialization routine failed. ".
J'ai recherché dans l'aide MSDNet à DLL initialization, et on trouve un txte expliquant la nécessité de créer pour chaque DLL d'extension une fonction d'initialisation qui doit être appelée par le programme appelant. Cependant, ce paragraphe ne semble se référer qu'aux structures utilisant des MFC. Que faut-il faire ?
Est-il obligatoire d'utiliser des fonctions d'initialisation, et le cas échéant, quel est leur rôle ? fonction ?
Quel document, écrit en français, permettrait d'y voir plus clair ?