Я получаю LNK2028 при попытке обернуть родной класс C ++ с помощью управляемого C ++ - PullRequest
5 голосов
/ 06 апреля 2009

пытается обернуть собственный класс cpp, используя управляемый класс c ++.

все выглядит хорошо, но по какой-то причине не компилируется.

получение следующих ошибок компоновщика:

Ошибка 25, ошибка LNK2028: неразрешенный токен (0A0002CE) Ошибка 27, ошибка LNK2019: неразрешенный внешний символ

Есть идеи, как мне это исправить? : \

хорошо, вот полная ошибка одной из функций:

Ошибка 20, ошибка LNK2028: неразрешенный токен (0A0002CF) «public: bool __thiscall RCSclient :: ResumeChannel (char *, int, __ int64)» (? ResumeChannel @ RCSclient @@ $$ FQAE_NPADH_J @ Z), на который ссылается функция public: bool __clrcall RCSClientWrapper :: RCSclientWrapper :: ResumeChannel (класс System :: String ^, int, класс System :: DateTime ^) "(? ResumeChannel @ RCSclientWrapper @ RCSClientWrapper @@ $$ FQ $ AAM_NP $ AAVString @ System @@ime $ AATE @ 4 @@ Z) RCSClientWrapper.obj RCSClientWrapper

Пытался добавить user32.lib безрезультатно.

Офер

Ответы [ 2 ]

3 голосов
/ 06 апреля 2009

C ++ / CLI позволяет смешивать в нативном C ++ практически по желанию, но использование C ++ / CLI делает ваше приложение зависит от .NET Framework.

Причина в том, что ваш проект C ++ / CLI не имеет настройки libs (user32.lib, например) во входных данных компоновщика, состоит в том, что .NET Framework уже предоставляет аналогичные службы IDE предполагает, что вы предпочитаете их старшим, родным.

Проверьте ваш проект и добавьте ссылку на соответствующую библиотеку.

0 голосов
/ 16 июня 2011

Возможно, вы забыли виртуальное ключевое слово в объявлении родной функции заголовка C ++ позвонить из управляемой оболочки!?

...