FreeBasic
Главная
Вход
Регистрация
Воскресенье, 19.11.2017, 22:44Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Библиотеки для FreeBasic » Библиотеки для работы с архивами » Библиотека UnRar (Библиотека для распаковки rar файлов)
Библиотека UnRar
electrikДата: Воскресенье, 19.07.2015, 20:30 | Сообщение # 1
Майор
Группа: Друзья
Сообщений: 94
Репутация: 3
Статус: Offline
обновлённые заголовки и пример для библиотеки unrar. Работает на x86 и x64 системах. при компиляции в x64, C компилятор выдаёт предупреждение в одном месте при использовании функции printf.
https://dl.dropboxusercontent.com/u/63991073/unrardll.7z

    https://yadi.sk/d/vMG6cxdzhxHfY
 
haavДата: Воскресенье, 19.07.2015, 21:44 | Сообщение # 2
Генерал-лейтенант
Группа: Администраторы
Сообщений: 793
Репутация: 34
Статус: Offline
На не запороленных работает, но с паролями нифига. Проверял с помощью архиватора HaoZip, архив не битый и пароль верный , но твоя утиль после ввода пароля пишет:

archive header or data are damaged


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Понедельник, 20.07.2015, 04:01 | Сообщение # 3
Генерал-лейтенант
Группа: Администраторы
Сообщений: 793
Репутация: 34
Статус: Offline
В принципе понятно, где собака зарыта. Вот эту строку в условии case UCM_NEEDPASSWORDW:

Код
eol=wcspbrk(cast(wstring ptr,P1),cast(wstring ptr,@!"\r\n"))


Надо переписать так:

Код
eol=wcspbrk(cast(wstring ptr,P1),cast(wstring ptr,@!"\n"))


Данная строка встречается не только в этом месте, так что проверять надо и другие места. Возможно, что-то еще не работает.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Понедельник, 20.07.2015, 23:56 | Сообщение # 4
Майор
Группа: Друзья
Сообщений: 94
Репутация: 3
Статус: Offline
ок, гляну. утилитка не моя, а оригинальная от rarlab.

Добавлено (20.07.2015, 23:56)
---------------------------------------------
обновил архив.
вообще, оригинал сишной строки выглядел так:

             

Код
eol=wcspbrk((wchar_t *)P1,L"\r\n");


буква L перед кавычками, как я понимаю, означает, что это юникод строка?
 
haavДата: Вторник, 21.07.2015, 07:14 | Сообщение # 5
Генерал-лейтенант
Группа: Администраторы
Сообщений: 793
Репутация: 34
Статус: Offline
Цитата electrik ()
буква L перед кавычками, как я понимаю, означает, что это юникод строка?


Ну да, L - это литерал для строк wchar


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Форум » Библиотеки для FreeBasic » Библиотеки для работы с архивами » Библиотека UnRar (Библиотека для распаковки rar файлов)
Страница 1 из 11
Поиск: