Проблема доступа к членам класса в C # DLL из проекта C ++ - PullRequest
2 голосов
/ 07 декабря 2009

Я добавил C # DLL в проект C ++ как , упомянутое при поддержке MS , однако я не смог получить доступ к его переменным и методам внутри класса. Это также говорит о том, что это структура, а не класс, я не знаю, важно ли это, но я подумал, что стоит упомянуть и это. Всякий раз, когда я пишу. или -> или :: после объекта ничего не появляется. Но оно появляется только в названии класса, хотя оно не является статичным.

Ответы [ 3 ]

0 голосов
/ 02 февраля 2010

Начиная с Visual Studio 2005, вы можете использовать C ++ / CLI, одобренный ECMA диалект C ++ от Microsoft, который позволяет использовать управляемый и неуправляемый код вместе. В VS2005 есть «Управляемые расширения для C ++», с помощью которых вы можете достичь примерно того же, но вы должны использовать ужасно выглядящие синтаксисы для написания управляемого кода на C ++ (с множеством двойных подчеркиваний).

С C ++ / CLI вы можете смешивать управляемый и неуправляемый код в своем проекте и напрямую использовать типы C #. ИМХО, это намного проще, чем использовать COM.

0 голосов
/ 10 сентября 2010

Прочтите статью, размещенную по ссылке ниже

http://www.codeproject.com/KB/cs/InterOp.aspx

Я думаю, это поможет тебе.

0 голосов
/ 24 января 2010

Для повышения совместимости я не экспортирую класс из моих DLL (C # или C ++). Вместо этого я раскрываю функции класса, но первый параметр каждой функции - это указатель на сам класс. Вам также может понадобиться предоставить: void * CreateMyClassInstance () и a: DestroyMyClassInstance (void * pInstance).

...