Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
Вопрощающий

Создание (+распаковка) CAB архива

11.10.2009, 19:26. Показов 12372. Ответов 130

Студворк — интернет-сервис помощи студентам
Обращаясь к cabinet.dll, без использования *.exe
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2009, 19:26
Ответы с готовыми решениями:

Создание архива
Есть такая строка .AddAttachment "C:\logfiles.rar" При выполнении кода на ней ошибка. Как создать программно этот архив?

Программное создание архива.
Добрый день! Можноли программно сделать архив, например, ZIP или rar, не важно и добавить в него файлы? Заранее спасибо.

Создание архива с паролем
Private Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long) Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal...

130
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 12:39
Студворк — интернет-сервис помощи студентам
Просто я о чем хочу сказать, что если TB будет дальше также актино развиваться, то он заменит VB и 64бит будет более актуально чем сейчас. Когда то и VB пеершел с 16 на 32 бита, там выгода, конечно была более очевидна. Уже сейчас как бы видно, что TB предоставляет больше свободы в каких-то мелких, и нвеное не только вещах. Допустим ты можешь спокойно взять указатель на строковыый массив (VarPtr(sAr)), ну и монгие другие вещи, как бы прще. Т.е. я, допустим думаю, что еси писать, допустим, прогу, наверное прикольнее было бы на TB, хотя конечно там сейчас глючноватое IDE и вообще сами проги могут быть глючноватыми. Хотя я простой флудер на форуме, я не пишу проги, но просто мне хотелось бы видеть развитие VB как Твин-бейсика, это было бы кассно.
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 12:50
Цитата Сообщение от testuser2 Посмотреть сообщение
и 64бит будет более актуально чем сейчас.
да, будет актуально, но не всем это будет по карману, поэтому многие будут продолжать компилировать в 32 бита, как я

Добавлено через 3 минуты
Цитата Сообщение от testuser2 Посмотреть сообщение
сами проги могут быть глючноватыми
да не будут проги глючноватыми, если ты нормальный прогер то ты проверишь работу каждой функции чтобы ничего не глючило. ЯП тут не влияет. Влияет конечно, но лишь немного. Придётся конечно всё тестировать и проверять самому чтобы работало точно так же как и в VB6. Вот например мой модуль упаковки не работает в откомпилированном EXE в Твине у меня лично, а у фафалона почему-то работает, глюки в твине и правда есть и бывает хрен разберёшься где и кого в чём там ошибка.
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 12:50
Цитата Сообщение от HackerVlad Посмотреть сообщение
но не всем это будет по карману,
Да вы запарили про это "не по карману" я ваще про ето не хочу думать ))
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 12:55
Самое фиговое когда один и тот же код имеет разное поведение на разных компьютерах и в среде IDE работает в EXE уже не работает. Фиг отловишь такие ошибки и хрен пойми почему вообще.

Добавлено через 2 минуты
testuser2, у меня к тебе есть просьба: пожалуйста откомпилируй EXE моего модуля, моего проекта, не важно 32 или 64 бита в Твине и попробуй запустить EXE а потом нажать на кнопку Упаковать. И посмотри вылетит ли сразу ошибка, как у меня. У меня почему-то в EXE работает только если компилировать на VB6...

Добавлено через 1 минуту
Самое тут странное это то что в среде IDE Твина через запуск через F5 всё работает как часики. А в exe уже не хочет работать. Ненавижу такие чудеса. Фиг поймёшь почему вообще так...
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 13:20
Я вот от части всвязи с этой темой стал немножко интересоваться Делфи. Допустим, какие там способы передачи параметров функций. Вообще на одном форуме упоминали о 6 способах передачи параметров (in, out, по значению, по ссылке, const, вроде бы еще по указателю, но это тоже саомое, что и по ссылке). В одной старой статье упоминалась возможность перегрузки (Overload), но не рекомендовалось ее использовать, поскольку она может быть источником труднодиагностируемых проблем. К слову на Твин-бейске тоже добавили перегрузку, интересно как она себя там покажет..

Добавлено через 18 минут
HackerVlad, одну ошибку вижу утебя
Visual Basic
1
Private Declare Function GetMemPtr Lib "msvbvm60" Alias "GetMem4" (ByVal Addr As Long, ByRef dstValue As Long) As Long
Не должно быть так все "msvbvm60" нужно заменять на твинбейсиковый "<hiddenmodule>". Эту строчку можно закомментировать. В TB к проекту по умолчанию уже подключен "HiddenModule.twin" в котором все аналоги функций msvbvm60. Правда, я когда хотел код Трика портировать на x64 (просто для интереса), то обнаружил там нехватку одной функции из msvbvm60.
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 13:23
testuser2, ты вообще меня слышишь я попросил тебя проверить работу exe и нажать на кнопку Упаковать файлы, обязательно запустив exe твиновский.
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 13:24
Декларарации зи hiddenmodule кстати можно переносить себе в модуль и переделывать как удобнее. Допустим
GetMemPtr там такое
Visual Basic
1
    Public DeclareWide PtrSafe Sub GetMemPtr Lib "<hiddenmodule>" Alias "#7" (ByVal Address As LongPtr, ByRef retVal As LongPtr)
Его можно переделать на более универсальный вариант
Visual Basic
1
Private DeclareWide PtrSafe Sub GetMemPtr Lib "<hiddenmodule>" Alias "#7" (ByVal Address As Any, ByRef retVal As Any)
И будет работать именно этот вариант
Кстати, там если заметил, все функции GetMem это субы (Sub), в отличие от msvbvm-овских
1
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 13:28
Цитата Сообщение от testuser2 Посмотреть сообщение
HackerVlad, одну ошибку вижу утебя
Этот код писал fafalone а не я, вот у него вообще вот так вот

Visual Basic
1
2
3
4
5
    #If Win64 Then
        Private Declare PtrSafe Function GetMemPtr Lib "msvbvm60" Alias "GetMem8" (ByVal Addr As LongLong, ByRef dstValue As LongLong) As Long
    #Else
        Private Declare Function GetMemPtr Lib "msvbvm60" Alias "GetMem4" (ByVal Addr As Long, ByRef dstValue As Long) As Long
    #End If
Добавлено через 1 минуту
Цитата Сообщение от HackerVlad Посмотреть сообщение
testuser2, у меня к тебе есть просьба: пожалуйста откомпилируй EXE моего модуля, моего проекта, не важно 32 или 64 бита в Твине и попробуй запустить EXE а потом нажать на кнопку Упаковать. И посмотри вылетит ли сразу ошибка, как у меня. У меня почему-то в EXE работает только если компилировать на VB6...
ну пожалуйста ну
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 13:31
Цитата Сообщение от HackerVlad Посмотреть сообщение
проверить работу exe и нажать на кнопку Упаковать файлы
Выдает ошибку библиотеки
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 13:33
testuser2, как и у меня, поэтому я не понимаю почему фафалон говорит что у него всё работает и он "не может воспроизвести проблему" не люблю такое
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 13:34
Цитата Сообщение от HackerVlad Посмотреть сообщение
Этот код писал fafalone а не я, вот у него вообще вот так вот
Наверное он пошутил, поскольку в Твин-бейсике есть свои эти функции и не нужен msvbvm60 для работы )
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 13:34
Цитата Сообщение от testuser2 Посмотреть сообщение
hiddenmodule
А про эти штуки hiddenmodule я знал ты это фафалону лучше скажи, он же писал, а не я ту вставку с GetMemPtr
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 13:38
Чтобы я сделал в данном случае, во всех функция, которые идут по цепи после нажатия кнопки Pack расставил обработчики ошибок "On Error Goto ErrHdr.." и вывод описания ошики на экран месаджбоксом типа "Процедура такая-то " & Err.Description. Потом когда найдется функция, в этой функции сделать нумерацию строк и смотреть в какой строке произошла ошибка с помощью Erl
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 13:43
Цитата Сообщение от testuser2 Посмотреть сообщение
расставил обработчики ошибок "On Error Goto ErrHdr.."
Да зачем!? Я на 90% уверен, что это DispCallFunc сбоит.

Добавлено через 1 минуту
Вообще конечно ещё тут виноваты разработчики ЯП твина, в vb6 же всё ок работает как надо
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 14:03
Цитата Сообщение от HackerVlad Посмотреть сообщение
Да зачем!? Я на 90% уверен, что это DispCallFunc сбоит.
До нее не успевает дойти я проверил
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 14:17
но сами по себе же API функции не могут вызывать ошибки времени выполнения с фатальным вылетом из программы

Добавлено через 16 секунд
а там всё на API

Добавлено через 4 минуты
Цитата Сообщение от testuser2 Посмотреть сообщение
До нее не успевает дойти я проверил
Блин точно, все функции IStream успешно работают, я проверил в отдельном своём проекте который тестирует только работы UStream

Добавлено через 25 секунд
Тогда хрен поймёшь эту ошибку вообще

Добавлено через 28 секунд
И главное же что этой ошибки вообще быть не должно быть! Это косяк Твина.
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 14:20
Ты можешь найти хотяб в каком месте ошибка и сообщить разрабам
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 14:35
Цитата Сообщение от testuser2 Посмотреть сообщение
Ты можешь найти хотяб в каком месте ошибка и сообщить разрабам
Ну я попросил об этом фафалона.

Добавлено через 56 секунд
Цитата Сообщение от HackerVlad Посмотреть сообщение
в каком месте ошибка
А хрен поймёшь если в IDE это никак не отловить

Добавлено через 12 минут
testuser2, прикинь, я написал письмо Кристиан Гислеру с предложением идей TotalCommander'а и он мне ответил даже на моё письмо! я в шоке!
0
1406 / 865 / 93
Регистрация: 08.02.2017
Сообщений: 3,696
Записей в блоге: 2
24.11.2024, 14:47
Ошибка в CabinetAddFiles, но строку узнать я не смог, видимо Erl не работает в откомпилированном виде
0
Вернулся
 Аватар для HackerVlad
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
24.11.2024, 14:58
Цитата Сообщение от testuser2 Посмотреть сообщение
видимо Erl не работает
А что такое Erl?

Добавлено через 10 минут
testuser2, а может MsgBox расставить на каждой строке да и посмотреть где накроется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2024, 14:58

Создание установочного архива для своих любимых программ
Многие новички в программировании рано или поздно создают программы или игры, которыми хотят поделиться с другими пользователями или своими...

Распаковка архива rar без сохранения файла во временную папку
В архиве rar хранится сжатый (с паролем) файл txt, как его распаковать (пароль известен) чтобы файл не записывался на диск, а содержимому...

Создание архива с паролем средствами PB. Возможно?
Есть ли какая то библиотека что позволяет запихнуть PB кодом файлы в архив с паролем? Ну и соответственно извлекать из архива. Спасибо.

Создание cab архива
Здравствуйте! Помогите реализовать код создания cab архива с помощью CabinetAPI Код из msdn не получается скомпилировать, не понимаю...

Создание папки с датой в имени и распаковка в неё архива
Есть папка на диске С:\Arhiv в нем есть архивы по датам! надо что бы брал самый последний архив по дате и распаковывал в корень С:\Arhiv\...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru