Загрузка и вызов managed из native.
От: Solodow  
Дата: 31.12.08 13:54
Оценка:
Необходимо загрузить и выполнить 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-модуля и всей его "обвязки"/окружения, но по мере необходимости, а не сразу при старте процесса?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.