Импорт собственного класса c ++ в проект CLI - PullRequest
3 голосов
/ 29 марта 2011

Я нахожусь в процессе создания проекта CLI, чтобы обернуть вокруг существующего собственного проекта c ++ (два отдельных проекта в одном файле решения).Я хотел бы включить указатель на нативный класс в качестве члена в управляемом классе.Из документации, которую я прочитал в Интернете, это можно сделать, если как управляемый, так и неуправляемый код находятся в одном проекте.Если нативный и управляемый код находятся в отдельных проектах, тогда единственный вариант - использовать атрибуты dllimport и dllexport между двумя проектами и экспортировать функции класса нативного кода как статические функции.

Это мои единственные вариантыИли я могу импортировать и экспортировать весь собственный класс между двумя отдельными проектами?Я спрашиваю, потому что это определяет, как я создаю свою управляемую оболочку.Заранее спасибо.

1 Ответ

5 голосов
/ 29 марта 2011

Ну, слово «указатель» отбросило меня на минуту.Вы имеете в виду, что хотите использовать некоторый нативный код из своего кода C ++ / CLI без P / Invoke?Конечно.Просто включите заголовок, ссылку на библиотеку.Именно то, что вы сделали бы, если бы они оба были родными.В наши дни он называется C ++ Interop - мне больше нравится старое имя (It Just Works Interop).

Конечно, вы можете включать заголовок из любого места и добавлять входные данные компоновщика из любого места, так что они технически недолжны быть в том же .sln, но Visual Studio сделает вашу жизнь немного проще, если они есть.

...