Я пишу хост CoreCLR на С++.
Я успешно вызвал функцию С# из С++: https://docs.microsoft.com/en-us/dotnet/core/tutorials/netcore-hosting
Чтение этой документации:
Другой вариант, если ExecuteAssembly не соответствует потребностям вашего хоста, — использовать CreateDelegate для создания указателя функции на статический управляемый метод. Это требует, чтобы хост знал сигнатуру метода, который он вызывает (чтобы создать тип указателя функции), но позволяет хостам гибко вызывать код, отличный от точки входа сборки.
учитывая функцию С#, как я могу "создать тип указателя функции С++"
например, для такой функции:
public static int withParams(int aNumber, string[] args)
существуют ли какие-то правила маршалинга/демаршалинга, как вести себя с объектами или массивами в качестве параметров?
Есть ли достойная официальная документация для встраивания coreclr в код С++?
Я ищу что-то вроде этого (но для coreclr): http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html