This is an old thread, but I thought I might ask a Q. I am trying to determine if an x64 DLL is a .NET assembly, or a traditional DLL, so it can be parsed for resources (dialogs, strings, etc) for localization. The code snippet posted above works for 32bit DLLs, but with a x64 DLL it reports that they are .NET (finds a valid pNETHeader).

Is there a better way for me to determine a traditional DLL, which run thru my DLL resource parser just fine, and let me skip the .NET assemblies? I would appreciate clarification or help in this area.