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

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

11.10.2009, 19:26. Показов 10639. Ответов 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
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 12:39
Студворк — интернет-сервис помощи студентам
Просто я о чем хочу сказать, что если TB будет дальше также актино развиваться, то он заменит VB и 64бит будет более актуально чем сейчас. Когда то и VB пеершел с 16 на 32 бита, там выгода, конечно была более очевидна. Уже сейчас как бы видно, что TB предоставляет больше свободы в каких-то мелких, и нвеное не только вещах. Допустим ты можешь спокойно взять указатель на строковыый массив (VarPtr(sAr)), ну и монгие другие вещи, как бы прще. Т.е. я, допустим думаю, что еси писать, допустим, прогу, наверное прикольнее было бы на TB, хотя конечно там сейчас глючноватое IDE и вообще сами проги могут быть глючноватыми. Хотя я простой флудер на форуме, я не пишу проги, но просто мне хотелось бы видеть развитие VB как Твин-бейсика, это было бы кассно.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 12:50
Цитата Сообщение от testuser2 Посмотреть сообщение
и 64бит будет более актуально чем сейчас.
да, будет актуально, но не всем это будет по карману, поэтому многие будут продолжать компилировать в 32 бита, как я

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

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

Добавлено через 1 минуту
Самое тут странное это то что в среде IDE Твина через запуск через F5 всё работает как часики. А в exe уже не хочет работать. Ненавижу такие чудеса. Фиг поймёшь почему вообще так...
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
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
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 13:23
testuser2, ты вообще меня слышишь я попросил тебя проверить работу exe и нажать на кнопку Упаковать файлы, обязательно запустив exe твиновский.
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
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
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
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
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 13:31
Цитата Сообщение от HackerVlad Посмотреть сообщение
проверить работу exe и нажать на кнопку Упаковать файлы
Выдает ошибку библиотеки
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 13:33
testuser2, как и у меня, поэтому я не понимаю почему фафалон говорит что у него всё работает и он "не может воспроизвести проблему" не люблю такое
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 13:34
Цитата Сообщение от HackerVlad Посмотреть сообщение
Этот код писал fafalone а не я, вот у него вообще вот так вот
Наверное он пошутил, поскольку в Твин-бейсике есть свои эти функции и не нужен msvbvm60 для работы )
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 13:34
Цитата Сообщение от testuser2 Посмотреть сообщение
hiddenmodule
А про эти штуки hiddenmodule я знал ты это фафалону лучше скажи, он же писал, а не я ту вставку с GetMemPtr
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 13:38
Чтобы я сделал в данном случае, во всех функция, которые идут по цепи после нажатия кнопки Pack расставил обработчики ошибок "On Error Goto ErrHdr.." и вывод описания ошики на экран месаджбоксом типа "Процедура такая-то " & Err.Description. Потом когда найдется функция, в этой функции сделать нумерацию строк и смотреть в какой строке произошла ошибка с помощью Erl
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 13:43
Цитата Сообщение от testuser2 Посмотреть сообщение
расставил обработчики ошибок "On Error Goto ErrHdr.."
Да зачем!? Я на 90% уверен, что это DispCallFunc сбоит.

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

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

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

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

Добавлено через 28 секунд
И главное же что этой ошибки вообще быть не должно быть! Это косяк Твина.
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 14:20
Ты можешь найти хотяб в каком месте ошибка и сообщить разрабам
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.11.2024, 14:35
Цитата Сообщение от testuser2 Посмотреть сообщение
Ты можешь найти хотяб в каком месте ошибка и сообщить разрабам
Ну я попросил об этом фафалона.

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

Добавлено через 12 минут
testuser2, прикинь, я написал письмо Кристиан Гислеру с предложением идей TotalCommander'а и он мне ответил даже на моё письмо! я в шоке!
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,502
Записей в блоге: 1
24.11.2024, 14:47
Ошибка в CabinetAddFiles, но строку узнать я не смог, видимо Erl не работает в откомпилированном виде
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru