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