Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека zlib.lib 
:(
    Опции темы
kurlyak
Дата 5.3.2012, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 7.11.2007

Репутация: нет
Всего: 3



Вобщим в 2005 визуальной студии пытаюсь скомпилировать проект с библиотекой zlib выдает ошибку линковки:

Error    1    error LNK2001: unresolved external symbol __imp__uncompress    TR2io.obj    

Проект написан на Си.
Скомпилировал zlib. Положил библиотеку zlib.lib в папку либов визуального студио, zlib.h в папку хеадеров, zlib.dll в папку System32. В проекте использую:

#define _WINDOWS 1
#define ZLIB_DLL 1
#include "zlib.h"
#pragma comment (lib, "zlib.lib")

и все равно выдает ошибку при линковке. Саму zlib.dll я проверял есть эта функция, она работает. Проверял уже на копии скомпилиной моего проекта. Компиленая копия не моя, тестовая, с исходниками которые я щас колупаю. В чем может быть дело?

PM MAIL   Вверх
borisbn
Дата 5.3.2012, 18:24 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Код

extern "C" {
#include "zlib.h"
}

пробовал ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kurlyak
Дата 6.3.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 7.11.2007

Репутация: нет
Всего: 3



Сделал так все заработало, спасибо. Но теперь другая проблема. При запуске моей программы вылетает ошибка "Память не может быть read". Может dll - ка Zlib к моей программе как- то не правильно скомпилена? Вроде def файл подключил. Код Dll- ки на Си, я компилил в студии 2005 сделал проект WinAPI 32 DLL. В чем проблема не знаете?
PM MAIL   Вверх
borisbn
Дата 6.3.2012, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(kurlyak @  6.3.2012,  12:24 Найти цитируемый пост)
 Может dll - ка Zlib к моей программе как- то не правильно скомпилена? Вроде def файл подключил.

def-файл вообще-то лишний. ты ж подключил h-ник и lib-ину
Цитата(kurlyak @  5.3.2012,  18:00 Найти цитируемый пост)
#include "zlib.h"
#pragma comment (lib, "zlib.lib")

Вылетать может по множеству причин. Покажи код своей программы



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kurlyak
Дата 8.3.2012, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 7.11.2007

Репутация: нет
Всего: 3



Да сама программа рабочая. Я взял рабочие исходники компилю с zlib и при запуске программы эта ошибка. Я пытаюсь сделать декомпрессию уровня из игры Tomb Raider4. Взял исходники из интернета. Код который работает с zlib привожу:

Код

typedef unsigned char      bitu8;   // 8-bit,  unsigned
typedef unsigned short int bitu16;  // 16-bit, unsigned
typedef unsigned long int  bitu32;  // 32-bit, unsigned

if (Level->EngineVersion == TombRaider_4) {
#ifdef INCLUDE_TR4_SUPPORT
      bitu16 tmp16;
      bitu32 CompressedSize,
             UncompressedSize;
      bitu8  *CompressedData;
      int    zerr;

      // Allow TR2fread() to really read the file
      LevelVersion = TombRaider_2;

      // read three unknown bitu16s
      TR2fread(&tmp16, sizeof(tmp16), 1, fp);
      TR2fread(&tmp16, sizeof(tmp16), 1, fp);
      TR2fread(&tmp16, sizeof(tmp16), 1, fp);

      // read the sizes of the 32-bit textures
      TR2fread(&UncompressedSize, sizeof(UncompressedSize), 1, fp);
      TR2fread(&CompressedSize, sizeof(CompressedSize), 1, fp);
      // skip the 32-bit textures
      fseek(fp, CompressedSize, SEEK_CUR);

      // read in the 16-bit textures, set NumTextiles
      TR2fread(&UncompressedSize, sizeof(UncompressedSize), 1, fp);
      TR2fread(&CompressedSize, sizeof(CompressedSize), 1, fp);
      Level->NumTextiles = UncompressedSize / sizeof(tr2_textile16);
      Level->Textile16 = (struct tr2_textile16_struct *)TR2alloc(sizeof(tr2_textile16) * Level->NumTextiles);
      // allocate a temporary buffer for decompression
      CompressedData = (bitu8 *)TR2alloc(CompressedSize);
      TR2fread(CompressedData, CompressedSize, 1, fp);
      // decompress the textures
      zerr = uncompress((bitu8 *)Level->Textile16, &UncompressedSize, CompressedData, CompressedSize);
      // free the temporary buffer
      free((char *)CompressedData);

      // read the sizes of the remaining textures
      TR2fread(&UncompressedSize, sizeof(UncompressedSize), 1, fp);
      TR2fread(&CompressedSize, sizeof(CompressedSize), 1, fp);
      // skip the remaining textures
      fseek(fp, CompressedSize, SEEK_CUR);

      // read the sizes of the level data
      TR2fread(&UncompressedSize, sizeof(UncompressedSize), 1, fp);
      TR2fread(&CompressedSize, sizeof(CompressedSize), 1, fp);
      // allocate a temporary buffer for decompression
      CompressedData = (bitu8 *)TR2alloc(CompressedSize);
      TR2fread(CompressedData, CompressedSize, 1, fp);
      TR4_LevelData = (bitu8 *)TR2alloc(UncompressedSize);
      // decompress the level data
      zerr = uncompress(TR4_LevelData, &UncompressedSize, CompressedData, CompressedSize);
      TR4_LevelDataOffset = 0;
      TR4_LevelDataSize = UncompressedSize;

      // Force TR2fread() to read the decompressed data
      LevelVersion = TombRaider_4;
#else    // !INCLUDE_TR4_SUPPORT
      fprintf(stderr, "Sorry, TR4 support was not compiled into this viewer.\n");
      return(NULL);
#endif   // INCLUDE_TR4_SUPPORT
      }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.