J'ai besoin de traiter un certain nombre de fichiers dll et exe dans un dossier et déterminer quel type de fichier que j'ai affaire: .NET, COM, Win32 ou une autre forme de vie extraterrestre.Comment puis-je détecter le type d'une DLL? (COM, .NET, WIN32)
J'ai essayé de déterminer la meilleure façon de détecter le type d'une DLL, que pensez-vous de ceci:
dll COM => Je fais LoadLibrary, puis GetProcAddress pour "DllRegisterServer". Si je reçois un retour valide, c'est un fichier COM.
dll .NET => Si le dll dépend de MSCOREE.DLL il est toujours une dll .NET?
Win32 dll => Si les deux tests ci-dessus échouent, il est une dll Win32?
Sûrement il doit y avoir une meilleure façon de détecter le type de dll que nous traitons. Ce qui précède est très maladroit, et ne fonctionnera pas pour les fichiers EXE? Il doit y avoir un autre moyen auquel je ne pense pas.
Idéalement, j'aimerais pouvoir faire en sorte que l'analyseur détermine avec quel compilateur le fichier a été compilé, et quelles fonctions il utilise telles que MFC, Atl, Stl etc ... Mais je doute que cela soit possible dans le pré- ère de la réflexion?
Accepter cette réponse en raison des liens agréables. Merci aux autres affiches pour les précieux commentaires. –