Добрый день!
Использую Zlib (
http://zlib.net/) под x86 в проекте (назовём XXX), среда разработки Visual Studio 9, язык C++ (VC9).
Zlib компилировался самостоятельно из исходников с помощью VC9.
Для примера будем использовать функцию inflateInit_ импортируемую из библиотеки Zlib
В проект использующий Zlib добавлены ссыки на lib файл, всё ок. С x86 проблем нет:
— в XXX объявлены Define: ZLIB_WINAPI, ZLIB_DLL
в lib файле Zlib экспортированны функции, например _inflateInit_@12, когда из проекта XXX убираешь ссылку на lib файл zlib, то выдаётся ошибка о то том что не найдена функция __imp_inflateInit_@12.
Т.е. как я понял VS сама добавляет __imp к именам фукнций импортируемым из lib.
Для x64!
Хотя, Zlib скомпилированна с теми же настройками, вроде, в lib файле имя экспортируемой функции выглядит, например, так: inflateInit_
теперь проект XXX при линковке выдаёт ошибку что не найдена функция __imp_inflateInit_ .
И ни как не могу эту ошибку устранить, вероятно в lib файле имя экспортируемой функции должно быть таким _inflateInit_
Заранее спасибо.
Здравствуйте, Time, Вы писали:
T>Добрый день!
T>Использую Zlib (http://zlib.net/) под x86 в проекте (назовём XXX), среда разработки Visual Studio 9, язык C++ (VC9).
T>Zlib компилировался самостоятельно из исходников с помощью VC9.
T>Для примера будем использовать функцию inflateInit_ импортируемую из библиотеки Zlib
T>В проект использующий Zlib добавлены ссыки на lib файл, всё ок. С x86 проблем нет:
T>- в XXX объявлены Define: ZLIB_WINAPI, ZLIB_DLL
T>в lib файле Zlib экспортированны функции, например _inflateInit_@12, когда из проекта XXX убираешь ссылку на lib файл zlib, то выдаётся ошибка о то том что не найдена функция __imp_inflateInit_@12.
T>Т.е. как я понял VS сама добавляет __imp к именам фукнций импортируемым из lib.
T>Для x64!
T>Хотя, Zlib скомпилированна с теми же настройками, вроде, в lib файле имя экспортируемой функции выглядит, например, так: inflateInit_
T>теперь проект XXX при линковке выдаёт ошибку что не найдена функция __imp_inflateInit_ .
T>И ни как не могу эту ошибку устранить, вероятно в lib файле имя экспортируемой функции должно быть таким _inflateInit_
T>Заранее спасибо.
Проверь с какой версией runtime library компилишься. (Project->Settings->C++->Code Generation)