Как определить, какой компилятор C или С++ использовался для создания конкретного исполняемого файла Windows или DLL? Некоторые компиляторы оставляют строки версий в финальном исполняемом файле, но это, кажется, реже в Windows, чем в Linux.
В частности, я заинтересован в том, чтобы различать Visual С++ и различные компиляторы MinGW (как правило, довольно легко от сигнатур функций), а затем между версиями Visual С++ (6, 2002/2003, 2005, 2008;). Есть ли там инструмент, который может сделать различие полунадежным способом?