![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_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 раз(а) Репутация: ![]() ![]() ![]() |
Я решил пойти правильным путем и задался вопросом. Что используют в 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. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.5.2025, 22:26 |