Как вы задерживаете загрузку управляемой DLL из неуправляемого приложения? - PullRequest
0 голосов
/ 15 сентября 2009

У меня есть нативное приложение c ++, и я хочу использовать некоторые управляемые типы, которые находятся в отдельной управляемой dll. Я считаю, что один из способов сделать это и при этом сохранить приложение c ++ полностью нативным - использовать COM-взаимодействие с .NET. Однако моя проблема заключается в том, что мое приложение должно изначально запускаться на компьютерах, на которых не установлен CLR, поэтому я не хочу, чтобы CLR загружался, если я фактически не использую код, который вызывает управляемую DLL. *

Как я могу отложить загрузку управляемой DLL?

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

Я думаю, что лучший способ добиться этого - через COM-взаимодействие, встроенное в управляемое в этом случае. Если ваше приложение является нативным, оно не будет загружать CLR по умолчанию. Вы можете «отложить загрузку» CLR, создав COM-объект, который определяется в управляемой сборке только тогда, когда это действительно необходимо. COM-уровень CLR позаботится о загрузке CLR в этот момент и возврате CCW к управляемому объекту.

0 голосов
/ 15 сентября 2009

Я бы предложил создать COM-вызываемую оболочку для управляемого компонента.

Вы можете иметь свой собственный класс .NET с интерфейсом, на который может ссылаться неуправляемый код (в моем случае у меня был Classic ASP, создающий экземпляр объекта, созданного с помощью .NET).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...