![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
покажи весь код 'CAnotherTestDlg::inf(FILE *source, FILE *dest)'
|
|||
|
||||
ohos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.12.2010 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) ohos - 26.2.2012, 19:16 |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
верни обратно потому, что один параметр берет макрос, оборачивающий эту функцию. а макросы не могут экспортироваться. а значит, тебе нужно юзать inflateInit_ так:
|
||||
|
|||||
ohos |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.12.2010 Репутация: нет Всего: нет |
макрос - это какой-то определенный тип объекта в С++? как вы узнали, что сама функция именно InflateInit_ , а не inflateInit? (просто судя по справке zlib 1.1.3 функция должна была быть inflateInit - http://koeln.ccc.de/archiv/drt/zlib-manual...sic%20functions ), я попробовал сделать как вы указали, предыдущей ошибки не появилось, но вылезла другая :(
когда запускаю Debug вариант, студия указывает как раз на измененную теперь строку
и ругается вроде более понятной ошибкой (только не для меня...)
а почему в импорте функции InflateInit_ второй параметр const char*? если я ничего не путаю, то char это dctuj 1 символ, а в вызове функции мы передаем ZLIB_VERSION, которая объявлена как строка "1.1.3" Это сообщение отредактировал(а) ohos - 26.2.2012, 20:37 |
||||||
|
|||||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
http://www.opennet.ru/docs/RUS/cpp/cpp-5.html
декларацию глянул)
тот мануал дико древний, и в нем серьезное расхождение с действительностью. const char* - и есть строка. выкладывай компилябельный код. |
||||
|
|||||
ohos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.12.2010 Репутация: нет Всего: нет |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
твой код у меня не скомпилится. нет микрософткомпилятора.
заметил, что ты не задефайнил ZLIB_DLL, хотя я об этом писал несколько постов ранее. по идее в этом проблема. только не спрашивай где в микрософтстудии дефайнить макросы. я это не знаю. |
|||
|
||||
ohos |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.12.2010 Репутация: нет Всего: нет |
На предыдущей странице нашел
пробовал в свой код вставлять поочередно
но это не помогло, ошибка осталась та же (не стал объявлять ZLIB_DLL, а напрямую использовал то, что в нем указано), но сам ZEXTERN у меня уже был объявлен в zlib.h
Это сообщение отредактировал(а) ohos - 26.2.2012, 21:25 |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
не все члены структуры занулены. потому и ошибка.
сделай так:
|
|||
|
||||
ohos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.12.2010 Репутация: нет Всего: нет |
не помогло... меня немного смущает вот эта часть ошибки в дебаг версии
гугл переводит convention как "соглашение", если я правильно понял, то нужно как-то использовать stdcall (второй вариант не помню) для вызова? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
не может быть. без зануления strm у меня вываливалась та же ошибка. типа того. попробуй методом тыка. я не помню эти соглашения. очень редко использую их. |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Что то напутано с соглашениями о вызовах функций. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |