2011-12-26 4 views
0

Я создаю dll на Visual Studio 2010, и я использую некоторые простые функции C, такие как fprintf и fread, и по умолчанию он ссылается на msvcr100.dll.удалить зависимость от CRT в dll

Эта DLL будет загружена в приложение, которое может использовать другую версию CRT (например, msvcr90.dll, msvcrt.dll).

Поскольку я знаю, что приложение загрузит CRT перед загрузкой dll, могу ли я удалить зависимость от msvcr100.dll и использовать функции C в CRT, загруженные приложением?

+0

Возможный дубликат [При построении DLL; к какому типу ЭЛТ следует привязать?] (http://stackoverflow.com/questions/5262519/when-building-a-dll-what-type-of-crt-should-i-link-to) –

ответ

0

В конце концов, я решил построить DLL против самой низкой общей знаменательной версии CRT, используемой целевым приложением, msvcr90.dll.

Я сделал это с помощью инструментальной линейки MSVC, доступной с Visual C++ 2008 Express (бесплатно).

я сделал попробовать MinGW/GCC набора инструментов, который позволяет определить, какая версия CRT линковать (см mingw-rt и gcc -specs=msvcr**), однако, msvcr90.dll новый стиль SxS сборки, так что я не мог получить полученный исполняемый для правильной работы.

Возможно, стоит рассмотреть возможность проскальзывания соединения с msvcr**.dll полностью; см. this post и VC/include/delayhlp.cpp.

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

  • Нет связанных вопросов^_^