Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > access violation при вызове inflate из zlib.dll


Автор: ohos 4.2.2012, 22:30
Привет, провожу эксперименты над zlib, прочитал про "правильную" линковку с dll динамическим путем на другом форуме, сделал в своем проекте так же, при вызове функции InflateInit из zlib.dll все хорошо, но когда происходит вызов Inflate выдается ошибка

Код

Необработанное исключение в "0x00000000" в "AnotherTest.exe": 0xC0000005: Access violation.


Приложил весь проект (т.к. он небольшой), ошибка возникает в коде в функции:

Код

...
int CAnotherTestDlg::inf(FILE *source, FILE *dest)
{
...
do {
            edit1.SetWindowText(edittext+"while 2\r\n");
            strm.avail_out = CHUNK;
            strm.next_out = out;

            if (loadsucces = 0)
            {
                ret = inflate(&strm, Z_NO_FLUSH);
            }
            else
            {
                ret = fpFunction(&strm, Z_NO_FLUSH);//access violation тут... но почему?
            }

            assert(ret != Z_STREAM_ERROR); 
...


в папке release лежит zlib.dll

Автор: boostcoder 4.2.2012, 22:54
Цитата(ohos @  4.2.2012,  22:30 Найти цитируемый пост)
прочитал про "правильную" линковку с dll

это как? smile

Добавлено через 51 секунду
и как неправильно?

напиши минимальный пример. никто не станет собирать твой проект.

Автор: Dem_max 5.2.2012, 10:01
Как ты думаешь есть разница ???
Вот ты говоришь мол хочу импортировать такую функцию
Код

typedef int(*functionDll)( z_streamp, int );


в zlib.dll экспортируется такую функцию
Код

int ZEXPORT inflate OF((z_streamp strm, int flush));


Чё разницы совсем что ли не видно ?????

Автор: boostcoder 5.2.2012, 10:04
Dem_max, ты это кому?
и в чем там разница?

Автор: Dem_max 5.2.2012, 10:09
Я это ТС.
Кстати и почитать наверное тут все таки еще http://forum.sources.ru/index.php?showtopic=38244

Автор: Dem_max 5.2.2012, 10:32
А соглашение вызова где ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)