@flexpc

Можно ли импортировать код другого языка в С#?

Например, в С++ есть такая возможность, делать вставки на ассемблере, получается что часть программы написано на С++, а другая на ассемблере, при том делается это без всяких танцев с бубном. И есть ли такая возможность в C#, если есть, то с какими языками, как это работает и если можно, то скиньте ссылку на подробную статью) Спасибо!
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 4
vabka
@vabka Куратор тега C#
Токсичный шарпист
Ассемблерные вставки в C# нельзя.
Можно использовать встроенный интерпретатор другого языка (как в упомянутом NLua)
Можно импортировать код, который написан на другом языке для .NET-платформы (На F# например или на голом IL)
Можно вызывать код из сишных библиотек (не только сишных. Главное чтобы был extern "C" или аналог), используя DLLImport.
Можно запустить программу, написанную на другом языке, в новом процессе. При помощи Process.Start
Можно использовать любую вариацию IPC
Ответ написан
Можно. Например, встроить интерпретор Lua. Смотри проект NLua и подобные.
Ответ написан
Комментировать
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ассемблерная вставка - это немного не то, что можно назвать "вставкой на другом языке". Вставка чистого асм просто используется напрямую компилятором при создании исп. файла. Не "знать ассемблер" компилятор не может.

C# - частично компилируемый язык, у него сложный процесс сборки в общий .NET код, а потом под платформу. И тут мы видим, что код на асм не впишется в такую архитектуру. По этому и не имеет возможности прямой вставки.
Прямая вставка асм, поддерживается, как вы уже сказали в С++, в Delphi, FPC и в многих других компилируемых языках.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Наиболее полезное для вас это https://www.pinvoke.net/

и COM

Все остальное несколько академично
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы