Есть ли сходство между COM DLL и DLL .NET, кроме расширения? - PullRequest
1 голос
/ 01 февраля 2011

Я только недавно начал изучать программирование в последние пару лет, и все это было в C # .NET. Я знаю, что DLL-файлы существовали до .NET, поэтому я хотел бы знать, есть ли сходство между DLL-файлами .NET, которые я создаю сейчас, и COM-DLL-файлами, которые существовали раньше? Другими словами, если бы я взял .NET DLL, которую я создал сегодня, раньше, чем .NET, и передал ее разработчику COM, они могли бы извлечь какую-либо информацию из файла? Или это будет просто файл с расширением, с которым они знакомы?


Обновление

Спасибо за ответы до сих пор. А что насчет EXE-файлов? Есть ли сходство между .NET EXE и COM EXE? Сможет ли компьютер с установленным .NET найти точку входа для .NET exe или он просто подумает, что файл поврежден или недействителен?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011

Сходство и, следовательно, повторное использование одного и того же расширения заключается в том, что они функционально эквивалентны. То есть они обе являются библиотеками классов, которые содержат потенциально общие методы и классы.

Однако, если DLL-библиотека .NET не является COM-видимой, то нет, разработчик COM не сможет получить от них никакой полезной информации.

РЕДАКТИРОВАТЬ:

Согласно вашему обновлению, машина без установленного .Net (или даже без требуемой версии .Net framework) сможет найти точку входа для приложения, но быстро выйдет из строя за исключением (что до того, как он действительно что-нибудь сделает).

1 голос
/ 01 февраля 2011

Нет корреспонденции вообще.Сборка .NET - это файл данных, он содержит 5 байтов машинного кода.Остальные метаданные и IL.Достаточно гибберинга без инструментов для декомпиляции, таких как ildasm.exe или Reflector.

...