Я получаю LNK2028 при попытке обернуть собственный класс c ++ с помощью управляемого c ++
-
05-09-2019 - |
Вопрос
попытка обернуть собственный класс cpp с помощью управляемого класса c ++.
все выглядит хорошо, но по какой-то причине это не компилируется.
получение следующих ошибок компоновщика:
Ошибка 25 ошибка LNK2028:неразрешенный токен (0A0002CE) Ошибка 27 ошибка LNK2019:неразрешенный внешний символ
Есть идеи, как мне это исправить?:\
ну, вот полная ошибка одной из функций:
Ошибка 20 ошибка LNK2028:неразрешенный токен (0A0002CF) "общедоступный:bool __этот вызов RCSclient::ResumeChannel(char *,int,__int64)" (?ResumeChannel@RCSclient@@$$FQAE_NPADH_J@Z), на который ссылается функция "public:bool __clr вызывает RCSClientWrapper::RCSclientWrapper::ResumeChannel(система классов::Строка ^,int, система классов::Дата-время ^)" (?ResumeChannel@RCSclientWrapper@RCSClientWrapper@@$$FQ$AAM_NP $ AAVString@System@@HP$AAVDateTime@4@@Z) RCSClientWrapper.obj RCSClientWrapper
Пытался добавить user32.lib безрезультатно..
Офер
Решение
C ++ / CLI позволяет вам смешивать родной C ++ в значительной степени по желанию, но использование C ++ / CLI делает ваше приложение зависимым от .NET framework.
Причина в том, что в вашем проекте C ++ / CLI нет некоторых библиотек (например, user32.lib), настроенных во входных данных компоновщика так, что .NET framework уже предоставляет аналогичные сервисы, и IDE предполагает, что вы предпочитаете их более старым, встроенным.
Проверьте свой проект и добавьте ссылку на соответствующую библиотеку.
Другие советы
Может быть, вы забыли ключевое слово virtual в объявлении функции заголовка native C ++ для вызова из управляемой оболочки!?