Как унаследовать интерфейс C ++ / CLI в C #? - PullRequest
2 голосов
/ 11 июля 2010

Я объявил интерфейс в C ++ / CLI и сделал его сборкой (DLL).Я хочу, чтобы этот интерфейс был реализован приложением C #.Я добавил ссылку, но моя сборка C # не обнаруживает мой интерфейс C ++ / CLI и говорит: «Не удалось найти: у вас отсутствует ссылка на сборку».

Как я могу решить эту проблему?

Ответы [ 4 ]

1 голос
/ 26 февраля 2011

Убедитесь, что ваша dll поддерживает CLR.(Вкладка «Общие» в свойствах конфигурации в Visual Studio).

0 голосов
/ 09 ноября 2016

Зная, что это старый вопрос, но у меня была та же проблема.Кроме того, ваш c ++ / cli должен предоставить некоторый исходный код (cpp) (который фактически почти пустой):

IXYprovider.h:

namespace Interfaces { public interface class IXYprovider { ... } }

IXYProvider.cpp:

#include "IXYprovider.h" namespace Interfaces { }

Это делает его видимым для C #.

0 голосов
/ 11 июля 2010

Определен ли интерфейс в пространстве имен в сборке C ++ / CLI?Если это так, вы поместили «using [namespace]» вверху вашего файла C #?

0 голосов
/ 11 июля 2010

Убедитесь, что interface class объявлен public в сборке C ++ / CLI.Я рекомендую бесплатную версию Red Gate .NET Reflector для просмотра видимости типов в скомпилированной сборке.

...