cs_guimou
Messages postés17Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention23 mai 2004
-
16 mai 2004 à 12:45
cs_guimou
Messages postés17Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention23 mai 2004
-
16 mai 2004 à 16:32
Hello tout le monde, j'ai un problème avec une Shell Extension. Les fonctions sont déclarées avec __stdcall et j'ai mis un .def avec le nom de la lib et les exports que je voulais faire, je l'ai mis dans les fichiers sources comme dans l'exemple et comme dans les autres shell extensions open source ke j'ai pu trouver sur le net... seulement voilà, ces fonctions (DllCanUnloadNow, DllGetClassObject) ne sont jamais appelées ! (DllMain l'est, en revanche, donc apparemment windows a bien compris ke je veux utilser cette DLL, ca doit donc pas etre une erreur de registre)
et sinon, avec un programme de test, je fais un GetProcAddress(hmod, "DllCanUnloadNow") et il me renvoie 0... donc apparemment la fonction n'a pas été exportée... ya-til quelque chose de spécial à faire avec le .def, une option à rajouter ?
Quand je rajoute __declspec(dllexport) sur ces fonctions, il me sort un warning comme quoi le dllexport a été ignoré, apparemment c incompatible avec __stdcall
Quelqu'un saurait-il comment faire pour que les fonctions soient bien exportées ?
Merci d'avance
guimou
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 16 mai 2004 à 14:35
Avec Visual, il y a un prog nommé Depends.exe (répertoire Common ou qqch comme ça) qui permet de savoir quelles sont les fct exportées et les Dlls importées d'un prog.
en ouvrant ton prog dedans tu pourras voir si tes fct sont exportées avec le bon nom.
sinon voici un exemple de déclaration:
.def (les @n et private ne sont pas nécessaire voire interdit selon le compilo):
cs_guimou
Messages postés17Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention23 mai 2004 16 mai 2004 à 16:32
C'est bon j'ai trouvé, c'était vraiment une erreur tout con : j'avais pas mis /DEF dans le linker, j'avais juste mis le fichier dans le groupe "source"
maintenant ça marche...
Merci encore pour Depends.exe !