Необходимо загрузить и выполнить managed-модуль из native-кода.
Делаю так (в упрощенном виде):
// thunk.cpp
#pragma managed
#using <mscorlib.dll>
void _startCLR()
{
System::AppDomain::CurrentDomain->ExecuteAssembly(filepath);
}
#pragma unmanaged
void startCLR()
{
_startCLR();
}
Но такой способ требует соотв. параметров сборки (например, нельзя использовать /MT), а так же в процесс
сразу загружается множество доп. DLL (mscorlib.dll и т.д.).
Мне же надо, чтоб при старте приложения ничего лишнего не подгружалось (только ntdll и kernel32), и лишь при необходимости вызова managed загружалось все остальное.
Сейчас сделал так: разместил "переходник native-managed" (thunk.cpp) в отдельной dll и загружаю её из основного модуля по необходимости. Но это не совсем подходящий вариант.
Подскажите, осуществить загрузку managed-модуля и всей его "обвязки"/окружения, но по мере необходимости, а не сразу при старте процесса?