Аргументы, которые вы используете для dumpbin, сообщают ему, какие разделы файла выгружать.
Причина, по которой вам нужно использовать разные аргументы, заключается в том, что вы просматриваете фрагменты данных, которые похожи друг на друга на самом деле близко друг к другу, но (с точки зрения PE-файла) это совершенно разные фрагменты данных, которые хранятся в разных разделах файла.
Итак, когда вы создаете объектфайл, он определяет некоторые символы, и они входят в раздел символов файла PE.Когда вы связываете их для создания DLL / EXE-файла, любые экспортируемые символы создают записи в разделе экспорта файла.С нашей точки зрения, они выглядят похожими (на самом деле экспортируемое имя обычно будет именем некоторого символа, который был в разделе символов некоторого объектного файла), но оно все еще сохраняется в другом разделе.
Когдакомпилятор делает свое дело, он записывает данные в раздел символов, но (по крайней мере, обычно) вообще не создает раздел импорта или экспорта.Затем компоновщик делает свое дело, в основном читая из раздела символов и записывая в разделы импорта и экспорта.Затем загрузчик делает свое дело, в основном читая из разделов импорта и экспорта и игнорируя раздел символов.