Ho bisogno di elaborare un numero di file dll ed exe in una cartella e determinare il tipo di file con cui ho a che fare: .NET, COM, Win32 o qualche altra forma di vita aliena.Come posso rilevare il tipo di una dll? (COM, .NET, WIN32)
Ho cercato di determinare il modo più semplice per rilevare il tipo di una DLL, cosa ne pensi di questo:
COM dll => faccio un LoadLibrary, poi GetProcAddress per "DllRegisterServer". Se ottengo un ritorno valido, è un file COM.
dll .NET => Se la DLL dipende MSCOREE.DLL è sempre una dll .NET?
DLL Win32 => Se entrambi i test precedenti non riescono, è una DLL Win32?
Sicuramente ci deve essere un modo migliore per rilevare quale tipo di dll abbiamo a che fare. Quanto sopra è molto goffo e non funzionerà con i file EXE? Ci deve essere un altro modo in cui non sto pensando.
Idealmente mi piacerebbe essere in grado di fare in modo che il parser determini con quale compilatore il file è stato compilato, e quali caratteristiche utilizza come MFC, Atl, Stl ecc ... Ma dubito che sia possibile nel pre era di riflessione?
Accettare questa risposta a causa delle belle collegamenti. Grazie agli altri poster per i preziosi commenti. –