Я недавно работала в COM-взаимодействии. Читайте несколько хороших книг об этом. C++/CLI в действии. Нишант Шивакумар. Я также воспользовался этой ссылкой Srinivas, в которой он прекрасно объяснил, как использовать библиотеку C# на родном C++, используя C++/CLI. Я загрузил код, присутствующий в нижней части страницы. Читайте его ... И понравилось. Мое приложение свободно основанный на нем. У меня есть вопрос, хотя в этом примере (который вы можете скачать там). В C# библиотеки «Worker.cs», если у меня есть метод в классе работника с подписью, как это ::Передача объекта в качестве параметра в c/CLI Wrapper Функция для экспорта в родную Win32 dll
public void GetStudent(ManagedStudent student,int){....}
FYI :: Мне нужен параметр объекта, потому что я был бы доступ к методу от этого класса в рабочем классе.
В проекте оболочки C++/CLI, NativeInterface.h, я хотел экспортировать метод, который получает этот управляемый объект в качестве параметра, в отличие от примера.
__declspec dllexport void GetStudent(ManagedStudent^ obj)
Что является эквивалентом объекта в C++/CLI?
И позже я хочу получить доступ к этому методу, импортировав этот метод, передав объект в свой собственный Win32 Application/DLL. Я включаю файл «NativeInterface.h» в своем родном dll/приложении. Но возникает ошибка при создании управляющего целевого кода dll/app .. требуется опция \ clr.
FYI :: 1. Мой длл WIN32/приложение компилируется без каких-либо \ поддержку CLR и моей оболочки с поддержкой \ CLR 2. Я считаю, что ошибка происходит из-за ручки, используемой в качестве параметра? Я хочу получить доступ к UnmanagedStudent (Object obj) в родном приложении/dll; Возможно ли это, что
Вы можете определить свой ManagedStudent как COM-объект, чтобы каждый язык в мире, поддерживающий COM, мог получить к нему доступ совершенно естественно. –