2014-02-27 6 views
0

Я понимаю концепцию ссылок во время компиляции, но не во время выполнения.Как работают ссылки на более низком уровне

например, если a.dll ссылается на b.dll, тогда a.dll может использовать все в b.dll. Как это работает на уровне msil/ассемблера? Включает ли a.asm ссылку на b.asm или a.asm содержит весь код из a.dll и b.dll?

ответ

0

Ссылка - это всего лишь инструкция, согласно которой одной сборке разрешено использовать другую сборку. Код из ссылочной сборки не копируется.

Исключение составляют константы. Если ссылочная сборка имеет константу, определенную, и первая сборка использует эту константу, тогда фактическое значение будет завершено в скомпилированном коде, а не в указателе на константу. Если вы измените константу, вам придется перекомпилировать любой используемый ею код, а не только сборку, в которой вы определили константу.

+0

Спасибо. Ссылки хранятся в файле проекта (.vbproj) в visual studio. Сохраняются ли они в dll/exe после компиляции? – w0051977

+0

@ w0051977: Да, исполняемый файл должен содержать информацию о библиотеках, которые необходимо загрузить. – Guffa

Смежные вопросы