Как .NET разрешает API-поиска скомпилированных библиотек DLL?
Поскольку DLL содержит метаданные обо всех типах, методах и т.д. Даже фактический код находится в IL, а не в собственном коде.
В основном бинарный файл .NET по-прежнему находится на более высоком уровне, чем собственный двоичный файл, и содержит намного больше информации о том, что там. Это позволяет Reflection работать.
Я не уверен, что об этом вы спрашиваете, но я могу только рекомендовать бесплатный инструмент .NET Reflector, который позволяет вы изучаете компилированную сборку .NET.
В наши дни я использую его гораздо больше, чем использую даже опубликованную документацию MSDN, потому что он намного быстрее ориентируется и более информативен для загрузки.
Это зависит.
DLL содержит список экспортируемых функций, но им может быть просто присвоено число, имя или им может быть присвоено mangled Имя С++. Последнее может дать некоторое представление о параметрах функции, но структуры данных, вызывающие соглашения и другие обязательные атрибуты обычно не документируются.
Если это COM-библиотека DLL, существует вероятность, что она содержит библиотеку типов в качестве ресурса, но это не гарантируется. В этом случае .NET может автоматически импортировать библиотеку.
Библиотека типов также может быть включена в не COM-библиотеку, но это не является широко распространенной практикой.
Если у вас есть скомпилированная библиотека DLL, предназначенная для вызова из не-COM-среды без управления, вам нужно будет перевести файлы заголовков, которые должны быть включены в DLL.
Одно слово: отражатель