Проблема: Есть некая статическая библиотека lib (с исходниками), экспортирующяя классы. Библиотека собрана в VC++.NET 2003. Создаю приложение Windows Forms в той-же среде и подключаю библиотеку. Создаю класс из статической библиотеки. Могу использовать только некоторые методы созданного экземпляра класса. На остальные линковщик пишет "error LNK2001: unresolved external symbol". Расковырял lib — декорированное имя которое ищет линковщик не совпадает с тем которое в библиотеке . Чего можно предпринять? Может я чего не так делаю?
Re: Декорирование имён в статической библиотеке VC++
От:
Аноним
Дата:
27.03.06 09:41
Оценка:
Отменить декорацию или вызывать по номерам
art
Re[2]: Декорирование имён в статической библиотеке VC++
Как Вы можете заметить, существуют также приложения типа "Win32 Static Library". При компиляции проектов данного типа создаются статические (в отличие от динамических!) библиотеки — имеющие расширение *.lib. Отличие статических библиотек от динамических состоит в том, что при компиляции код, заключенный в lib-файл (а там располагается именно код!), помещается целиком и полностью в бинарный файл использующего его приложения. При компиляции проекта "Win32 Dynamic-Link Library" у Вас также создается lib-файл. Но он содержит лишь необходимую информацию для связывания адресов DLL-файла и Вашего приложения.
Re[5]: Декорирование имён в статической библиотеке VC++
От:
Аноним
Дата:
27.03.06 12:32
Оценка:
Приатачь мне пожалуйста солюшен сделанный на С++ (2003 — 2005)где генеритьсяя библиотека lib о которой ты говоришь (с кодом внутри), а то я до сегодняшнего дня видимо неравильно кое-чего представлял
Буду очень признаиелен, я действительно не знал!!!
ЗЫ и с коментариями код какой нибудь постой вроде ХЕЛЛО ВОРД
Re[6]: Декорирование имён в статической библиотеке VC++
Здравствуйте, Аноним, Вы писали:
А>Приатачь мне пожалуйста солюшен сделанный на С++ (2003 — 2005)где генеритьсяя библиотека lib о которой ты говоришь (с кодом внутри), а то я до сегодняшнего дня видимо неравильно кое-чего представлял А>Буду очень признаиелен, я действительно не знал!!!
А>ЗЫ и с коментариями код какой нибудь постой вроде ХЕЛЛО ВОРД
Могу выслать на маил. Пример 4 мега — сюда не влезает.
Re[7]: Декорирование имён в статической библиотеке VC++
От:
Аноним
Дата:
28.03.06 06:48
Оценка:
Artur.Karmanovski@billimg.ru
Только сожми пожалуйста зипом
Re[8]: Декорирование имён в статической библиотеке VC++
Вот декорированное имя из статической библиотеки:
?OpenConnection@CRemoteModbus@@QAEHV?$CStringT@DV?$StrTraitMFC@DV?ChTraitsCRT@D@ATL@@@@@ATL@@GK@Z
Это ищет линковщик программы:
?OpenConnection@CRemoteModbus@@$$FQAEHV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@GK@Z
И чего я совсем не понимаю — undname для обоих декорированных имён выдаёт одинаковое нормальное имя:
public: int __thiscall CRemoteModbus::OpenConnection(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >,unsigned short,unsigned long)
То есть символы $$F, которые есть в одном и нету в другом, ни чего не значат?
Re[9]: Декорирование имён в статической библиотеке VC++