Как заставить VB6 генерить EXE без VERSIONINFO и иконки?

Тема в разделе "WASM.HEAP", создана пользователем Quantum, 1 авг 2005.

  1. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Сабж - ересь, конечно, НО прошу модераторов удалять этот топ не сразу ;)



    Итак, по умолчанию, 6й Visual Basic впихивает в экзешник 3 иконки, группу (для этих иконок) и VERSIONINFO. Удалить эти ресурсы можно ресхакером, например, но каждый раз это делать мне уже надоело. Советы по удалению сразу всей секции ресурсов не приветствуются, т.к. там у меня лежат и "нужные" ресурсы. Гуглил. Есть идея написать утиль, но вдруг существует документированный (или не очень, но рабочий) метод, а я его просто не нашёл?
     
  2. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Quantum

    Есть тулзы типа strip(gcc) и им подобные, которые вроде позволяют вырезать лишнее. В состав BC5 (и TASM5) входит тулза rlink, которая может удалить ресурсы из файла (похоже только из Борландовских приложений).



    Имхо, лучше написать самому утилиту, благо функция UpdateResource позволяет удалять произвольные ресурсы из исполняемого файла.
     
  3. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Take Control of the Compile Process



    Посмотри там статья и add-in к vb6 с примерами, вообще я сомневаюсь что возможно, но и проверить не могу, VB6 снес
     
  4. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    кроме как написать заглушку для c2.exe и выборочно объекты "самому" компилировать ничего в голову не приходит, с2 передается примерно такое

    [C2 -il "C:\WINXP\TEMP\VB561277" -f "D:\PATH TO PROJ\test.bas" -W 3 -Gy -G5 -Gs4096 -dos -Zl -Fo"D:\PATH TO PROJ\test.OBJ" -QIfdiv -ML -basic]



    Возможно какой-то и параметров и отвечает за ресурсы, т.к. в получившемся обж они уже есть
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    bogrus

    masquer

    C2 и link я уже перехватываю, но ресурсы создаёт генератор IL (это в какой-то DLL и вызывается до C2).



    VB берёт мой res-файл с "полезными" ресурсами, совмещает его со своим мусором (иконки и versioninfo), добавляет туда ссылки на VM и помещает это всё в ОДИН obj-файл.



    alpet



    Именно это я и подразумевал под




    Прав был Asterix, когда говорил, что нет в этом VB прямых путей.
     
  6. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    так ведь тот же Resource Hacker поддерживает скрипты!

    Один раз написал скрипт, и не нужно ничего удалять ручками - запустил .bat файл - и готово.

    см. ResHacker.hlp -> Command Line Scripting



    syntax: ResHacker.exe -script ScriptFile

    ScriptFile is a text file with the following layout:



    //comments are preceded by double slashes

    [FILENAMES]

    Exe=

    SaveAs=

    Log=



    [COMMANDS]

    -add ResourceSrc, ResourceMask

    -addskip ResourceSrc, ResourceMask

    -addoverwrite ResourceSrc, ResourceMask

    -addoverwrite ResourceSrc, ResourceMask

    -modify ResourceSrc, ResourceMask



    -extract ResourceTgt, ResourceMask

    -delete ResourceMask



    и т.д. - см. примеры
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Jupiter

    Я немного некорректно выразился про
    . Извините. Специфика задачи делает использование сторонних утилит неприемлемым.
     
  8. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    сделал .bat и скрипт для ResHacker

    удаляет иконки из файла и VERSIONINFO



    кстати, у меня VB6 пихает в файл не три иконки (одно и то же, как я понял, только разного размера), а одну



    я думаю, что в том, что касается иконок, проще всего установить в свойстве проекта: убрать какую-либо иконку



    что касается версии, то мне [пока] не удалось заставить VB не пихать данный ресурс, который он пихает, даже если в свойствах проекта убрать всю инфу о версии

    [​IMG] _638964111__StripRes.zip
     
  9. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    в файле vbe6.dll по офсету D9A56h меняем je->jmp.

    Размер vbe6.dll - 1 693 968 байт, версия - 6.0.0.8964

    Свои ресурсы, в крайнем случае, отдельно линкуй
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    masquer

    Спасибо, конечно, за информацию, но патчить DLL тоже не хочется, а то МС ещё обидется на мою скромную персону...



    All

    На основании предыдущих постов и предварительного поиска в гугле можно заключить, что нет в VB6 штатного способа решения сабжа. Решил писать утиль (возможно, он потом превратится в add-in). Всем спасибо за участие!
     
  11. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    Quantum

    патчить можно и в памяти, а обижаться не за что - обычная доработка программы :)