Отличаются они как минимум форматом. DLL заточена под динамическую загрузку, а lib - под встраивание на этапе компиляции. А еще у DLL и у EXE разные рантаймы.
Вопрос дилетантский, но что ты имеешь ввиду под "рантайм" - время выполнения?
Я понимаю, что они заточены под динамическую загрузку, вопрос скорее в том, что в этой "заточке" такого, что их нельзя использовать для статической сборки!? Ведь там, по сути, такой же набор процессорных команд, как и в статической библиотеке.
Про формат насмешили, как программист вы должны знать, что важно содержимое, а не формат.
lacredin: Все-таки "вы". Рантайм - всякая подкопотная хрень типа malloс, new, free и так далее. Память, выделяемая в DLL не должна освобождаться в EXE и наоборот. Как минимум поэтому код из DLL не должен работать в EXE.
Простите за грубость.
Ответьте тогда пожалуйста на вопрос:
Любую библиотеку можно из исходного кода собрать и в статическую, и в динамическую или есть особые требования предъявляемые к коду для разных типов сборки?