2008-08-13 8 views
1

Я интегрирую поддержку .NET в наше приложение на C++.
Это приложение MFC старой школы, с 1 дополнительным файлом, скомпилированным с опцией «/ clr», которая ссылается на CWinFormsControl.Какие библиотеки мне нужны для привязки приложения с смешанным режимом?

Мне не разрешено удалять флаг компоновщика "/ NODEFAULTLIB".
(У нас есть собственная система управления зданием, а не Visual Studio.)
Это означает, что я должен указать все необходимые библиотеки: VC runtime и MFC.

Другие опции компилятора включают «/ MD»

Далее к этому: я не могу использовать флаг компоновщика «/ FORCE: Multiple» и просто добавить все:
Я ищу для не -полный набор библиотек.

ответ

1

Как я ее решил:

  1. связи с «/ СИЛОЙ: НЕСКОЛЬКО/многословной» (что ссылки ОК) и установите выход в стороне.
  2. связь с «/ NODEFAULTIB/многословным» и проследить все unresolveds в выходе на предыдущем шаге и добавьте библиотеки 1 на 1.
  3. Это привело в парном разряде: «AAA.lib: XXX уже определены в BBB.lib "
  4. Тогда я, наконец, получил его: Перекомпилирован управляемых и неуправляемых единиц с/MD и ссылка на (среди прочих): mscoree.lib msvcmrt.lib mfcm80d.lib

Смешение/MT (неуправляемый) и/MD (управляемый) оказались плохой идеей: нужны разные (перекрывающиеся) библиотеки.

@ajryan: Dependcy Walker только сообщает мне, какие DLL используются, а не то, с чем связаны библиотеки при связывании. (например, msvcmrt.lib?) думаю.

Спасибо за ответы!

Jan

1

Как минимум:

mscoree.lib msvcrt.lib mfc90.lib (настроить версию соответствующим образом)

И итерацию оттуда.

1

Используйте AppWizard, чтобы создать приложение MFC с голубыми костями в вашем стиле (SDI/MDI/dialog), а затем put on your depends.

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

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