![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_cppLamer_* |
![]()
Сообщение
#1
|
Гости ![]() |
хотел подключить к проекту модули XZip.cpp и XUnzip, но при сборке вот такие ощибки
XZip.cpp:3140: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcpy(char*, const char*)' XZip.cpp:3141: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3142: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3143: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3158: error: cannot convert `WCHAR*' to `const char*' for argument `1' to `int strcmp(const char*, const char*)' XZip.cpp:3159: error: cannot convert `WCHAR*' to `const char*' for argument `1' to `int strcmp(const char*, const char*)' XZip.cpp:3166: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3167: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3168: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3182: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcpy(char*, const char*)' XZip.cpp:3183: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' XZip.cpp:3184: error: cannot convert `TCHAR*' to `char*' for argument `1' to `char* strcat(char*, const char*)' как исправить? |
|
|
SABROG |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Вот так.
|
|
|
Гость_cppLamer_* |
![]()
Сообщение
#3
|
Гости ![]() |
Вот так. не помогло ![]() |
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Ключевым для поиска тут является перевод UNICODE (TCHAR и WCHAR) в ANSI.
Кстати, причем тут QT? |
|
|
SABROG |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
что не вариант Да сама библиотека XZip похоже тоже не вариант, если использует типы мелкомягких, наверно и winapi там тоже можно встретить, а winapi и Qt тоже как-то не особо правильно совмещать. И кстати по ссылкам в гугле несколько winapi методов было приведено как преобразовать. |
|
|
Гость_cppLamer_* |
![]()
Сообщение
#6
|
Гости ![]() |
что не вариант Да сама библиотека XZip похоже тоже не вариант, если использует типы мелкомягких, наверно и winapi там тоже можно встретить, а winapi и Qt тоже как-то не особо правильно совмещать. И кстати по ссылкам в гугле несколько winapi методов было приведено как преобразовать. Да верно, а жаль.. давно уже мучаюсь с проблемой как бы работать с zip-ом. была вот тут ваша статья http://vingrad.ru/blogs/sabrog/2009/03/20/...s-zip-arhivami/, но этот метод с некоторыми zip архивами не работает, обсуждалось тут http://www.prog.org.ru/topic_9026_0.html. но так ничего и не выяснили. ![]() |
|
|
SABROG |
![]()
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Я решил пойти правильным путем и задался вопросом. Что используют в linux для распаковки .zip архивов. Linux - потому, что будут доступны исходники. Это привело меня к утилите unzip, которая является частью проекта Info-Zip. К счастью проект не мертвый и последний релиз 6.0 был в этом году 25 апреля. Далее я скачал исходники утилиты unzip (есть еще и zip, но пока они мне не нужны). К счастью почитав файлик INSTALL я спокойно собрал все на mingw командой:
В итоге у меня появились файлики: libunzsfx32.a libunzip32.a unzip32.dll Собственно unzip32.dll использует пример uzexampl.exe, который удачно распаковал тестовый архив в корневой директории testmake.zip:
Теперь о грустном. unzip32.dll использует функции из libunzip32.a, ключевым звеном для всего этого является метод pWiz_SingleEntryUnzip, который вызывается из uzexampl.exe. А сам метод pWiz_SingleEntryUnzip вызывает метод Wiz_Unzip, а уже тот вызывает метод process_zipfiles() из самой библиотеки. И все это обрамлено кучей, не понятного мне, подготовительного кода. Резюме такое. Сделать можно, но нужно перелопатить исходники windll.c или unzip.c выбросив всё winapi'шное и переписав под Qt или STL. |
|
|
Гость_cppLamer_* |
![]()
Сообщение
#8
|
Гости ![]() |
понятно, спасибо за разъяснение. буду пытаться.
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 9.4.2025, 9:48 |