Какие заголовки не следует использовать, если я не хочу, чтобы моя программа была связана с какой-либо из msvc * .dll? - PullRequest
0 голосов
/ 17 декабря 2009

Какие заголовки я должен не использовать , если не хочу, чтобы моя программа была связана с какой-либо из msvc * .dll?

На данный момент мое приложение использует:

  1. kernel32
  2. user32
  3. shell32
  4. msvcp90
  5. msvcr90

Я хочу избавиться от двух нижних файлов. Я не против, если мне придется переписать некоторые аспекты программы.

Потому что я знаю, если вы кодируете на C, а затем связываете, это не будет связывать MSVC

Ответы [ 3 ]

1 голос
/ 17 декабря 2009

Я считаю, что вы должны изменить способ связи ЭЛТ с вашей программой. Я думаю, для этого вы должны изменить C ++ -> Code Generation-> Runtime-Library на статическую версию. Это для Visual Studio 2005, не знаю о новых версиях.

0 голосов
/ 17 декабря 2009

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

0 голосов
/ 17 декабря 2009

Эти библиотеки содержат среду выполнения C ++ - управление кучей и другие вещи, от которых трудно избавиться.

Вместо этого вы можете статически связать C ++ - используйте параметр «C ++ -> Генерация кода -> Библиотека времени выполнения». Тогда вам не понадобятся эти DLL-файлы. Однако это не рекомендуемый способ - если во время выполнения C ++ обнаружена уязвимость, вам придется перекомпилировать и перезапустить программу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...