J'essaye de porter le Win32::Setupsup, un vieux module C++ plutôt croustillant destiné à fonctionner avec Visual C++, à Strawberry Perl et au MinGW GCC qu'il utilise. Je l'ai presque réussi à travailler, sauf pour une chose.Pourquoi Strawberry Perl n'appelle pas mon DllMain?
La partie C++ du module a une fonction DllMain
qui exécute du code d'initialisation à DLL_PROCESS_ATTACH
et code de nettoyage à DLL_PROCESS_DETACH
. Lorsque je compile le module avec Visual C++, cela fonctionne très bien. Mais quand je le compile avec le MinGW GCC que Strawberry Perl utilise, DllMain
n'est jamais appelé.
Je pense que le problème est juste que DllMain
n'est pas correctement identifié comme point d'entrée de la DLL lorsqu'il est compilé avec gcc
. Mais je ne sais pas comment réparer ça.
Le work-in-progress est en my GitHub repo for Win32::Setupsup. Bien que j'utilise Dist::Zilla pour gérer les versions, vous n'avez pas réellement besoin de dzil
pour le tester. Juste cloner le repo, perl Makefile.PL
, et dmake test
.
Est-ce que ['extern" C "'] (http://news.gmane.org/find-root.php?message_id=%3c200306030033.51176.hg%40technosis.de%3e) aide? – ephemient
@ephemient, ça l'a fait! Et cela ne semble pas déranger Visual C++ non plus. Ecrivez ça comme une réponse, et je l'accepterai. – cjm