Я размещаю библиотеку .NET в моей программе на C ++, используя следующие методы, но это не полный список:
CorBindToRuntimeEx()
GetDefaultDomain()
CreateInstance()
Invoke()
У меня есть классы C ++, которые соответствуют классам .NET. Каждый экземпляр класса содержит CComPtr<IDispatch>
, который я использую для вызова функций и получения / установки переменных-членов.
Это работает нормально, за исключением того, что когда я копирую свой класс C ++, я получаю два экземпляра класса C ++, которые оба указывают на один и тот же экземпляр .NET. Когда я изменяю значение переменной в одном экземпляре, оно отражается в другом.
Итак, мне бы очень хотелось продублировать мой указатель IDispatch, чтобы у каждого экземпляра класса C ++ был один уникальный экземпляр класса .NET. Я мог бы позвонить CreateInstance()
, но по разным причинам выяснять имена библиотек и классов неудобно.
ТЛ; др
Как можно дублировать мой указатель IDispatch с поддержкой .NET без поиска имен классов / библиотек?
Спасибо!