Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Создание статической библиотеки |
Автор: бУРов 18.4.2013, 14:22 |
Здарвствуйте! Может быть мой вопрос тоже к этой теме подойдёт. Хочу научиться создавать статическую LIB-библиотеку и ее использовать. Для этого создал два проекта в VS2008 (x32 в Win7): — utlib.LIB -- функция "hash", которая должна вызваться из EXE функция "пустая", ничего не выполняет пока — CalLIB.EXE -- вызов функции из LIB Хочу добиться сборки EXE-проектка, и его запуска в отладчике. Но EXE-проект не собирается. В свойства проекта добавил нужные ссылки — С/С++-Доп.каталоги включения=..\..\utlib\utlib — Компоновщик-Доп.каталоги библиотек=..\..\utlib\Debug — Ввод-Доп.зависимости=..\..\utlib\Debug\utlib.lib — добавил ключ /MTd для LIB-преокта Вызов записан так: #include "utlib.h" #pragma comment(lib, "utlib.lib") // не знаю, нужно ли если в свойствах пректа уже настройка есть void CCallLIBDlg::OnBnClickedButton1() { utlib::hash(CString &m_sUNum); } Получаю ошибку (см скрин) На всякий случай http://zalil.ru/34448658 положил на zalil.ru Может кто поможет собрать? |
Автор: Earnest 18.4.2013, 16:52 |
Библиотеку, действительно, подключать нужно один раз - либо через comment, либо через зависимости в солюшене, либо в параметрах линкера, но ошибка вряд ли в этом. Проверь, что при компиляции библиотеки и в вызывающем коде пользовании используется одно и то же описание функции (один и тот же хедер). А потом проверь, что он одинаково интерпретируется - т.е. настройки проектов совпадают (декларация по умолчанию, Юникод, интрепретация w_char) Вызов utlib::hash(CString &m_sUNum) тоже выглядит подозрительно. Неужто компилятор не ругается? Скорее как определение, а не как вызов... |