Могу ли я использовать как С#, так и С++/CLI в одной сборке?

Можно ли собрать как исходные файлы С#, так и С++/CLI в одном проекте, а затем скомпилировать их для получения единой сборки .LLL?

Ответ 1

Вы можете получить одиночную DLL из кода как в С++/cli, так и С# с помощью инструментов командной строки. Предположим, у вас есть два файла: A.cc с кодом С++/CLI и B.cs с кодом С#. Он должен выглядеть примерно так:

  • Сначала скомпилируйте С++-код в .obj файл cl.exe /MD /c /clr A.cc
  • Скомпилировать код С# в "модуль", добавив ранее созданный .obj с ключом /addmodule: csc.exe /target:module /addmodule:A.obj B.cs
  • Затем свяжите модуль с одной DLL: link.exe /DLL /LTCG /NOENTRY /CLRIMAGETYPE:IJW A.obj B.netmodule

Я не тестировал его, но он должен работать.