Я переношу решение из Visual Studio 2005 (Windows XP) в Visual Studio 2008 (Windows 7).Решение содержит несколько библиотек классов (dll).Эти библиотеки написаны на C #.Одна библиотека (названная «SDEWriter»), однако, написана на C ++.Эта библиотека представляет собой проект CLR, и ссылки на внешние библиотеки написаны на нативном языке C. У меня нет доступа к коду C.
Компиляция и компоновка проекта в VS 2005 прошла нормально.Но в VS 2008 я получаю следующую ошибку компоновщика:
* ошибка LNK2028: неразрешенный токен (0A00000E) "extern" C "long __stdcall SE_error_get_string (long, char *)" (? SE_error_get_string @@$$ J18YGJJPAD @ Z) упоминается в функции "public: static bool __clrcall SDEWriter :: SDEfuncs :: Ошибка (long, класс std :: basic_string, класс std :: allocator>)" *
Чтоинтересно: когда я делаю «SDEWriter» статической библиотекой (lib) вместо dll, все работает отлично !!!
Некоторая дополнительная информация о свойствах проекта «SDEWriter»:
- Поддержка общеязыкового языка: старый синтаксис (/ clr: oldSyntax)
- Дополнительные каталоги включения: путь к папке включения файлов внешних заголовков C
- Дополнительные каталоги библиотек: путь к внешнему каталогуlibs
- Дополнительные зависимости: все необходимые внешние библиотеки
Я искал этот сайт и Интернет, но не нашел решения.Я был бы очень рад, если бы кто-нибудь мог помочь!Заранее большое спасибо.
Барбара