Как обойти VC ++ Runtime требование в DLL? - PullRequest
3 голосов
/ 24 апреля 2009

Я написал dll в VS2008, который я использую в своем приложении C #, но моим пользователям не нравится тот факт, что им нужны и .NET Framework, и VC ++ Runtime.

Есть ли способ избежать обязательной среды выполнения VC ++ в моей C ++ dll?

Ответы [ 3 ]

10 голосов
/ 24 апреля 2009

Вы можете построить свою dll со статически связанной средой выполнения (/ MT вместо / MD - в свойствах-> Свойства конфигурации-> C / C ++ -> Генерация кода-> Библиотека времени выполнения).

3 голосов
/ 24 апреля 2009

Вы можете связать статическую библиотеку времени выполнения в вашей dll. Таким образом, он всегда будет там, и не требуется .dll с C ++.

1 голос
/ 24 апреля 2009

Как уже говорили другие, вы можете статически связывать, но это станет кошмаром, если вы когда-нибудь включите сторонние библиотеки C ++, которые не являются статически связанными (и это почти все). Этот сценарий приведет к случайным сбоям, которые навсегда отладят вас. Самый простой способ - использовать установщик, который скрывает это от ваших пользователей. Вы можете использовать модули слияния, если вы используете установщик vs, или установить как часть установки nsis. Это облегчит жизнь каждого. Особенно твой. Нет причин противостоять их установке, как против установки .NET Framework. С точки зрения стабильности не имеет значения, если они вам не нужны и у вас их нет.

...