Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Компилирование програм на VB6


Автор: merlex 7.4.2005, 23:08
При создании exe файлов, в опциях есть несколько переключателей
P-code
Native code
........
и тд.
подскажите, что все это значит, или хотябы как это отразится на конечном файле, спрашиваю я это потому, что откомпилированная мной простая прога (чисто расчеты, без графики, без использования dll, просто ТекстБоксы для ввода значений, ТекстБоксы для вывода, три-четыре управ. кнопки) запускается не на всех компах.

smile Работает на:
моем (АХР2400,кт400,256,гФ2мх400х32 - если это важно) под 98(вб есть) и ХР(вб ставился, сейчас нету)
друга (примерно тоже) ХР(вб есть)

smile не работает:
в технаре (П133,16,s3 2mb) под 98 (вб нет,и небыло)
в технаре (примерно тоже) под 95 (вб нет,и небыло)
smile

Пишет: Программа вызвала ошибку <нет данных> smile (точно переписать не успел), может ему какая dll-ка нужна, или инсталятор сделать,чтоб он ченить куданить установил,записал и т.п. smile

И вообще какие нюансы нужно учесть при компилировании?
Спасибо заранее!!!!!!!!!

Автор: Ch0bits 7.4.2005, 23:31
Там скорее всего не хватает msvbvm60.dll(для VB6) или msvbvm50.dll(для VB5) smile

Скопируй эти dll-ки у себя с XP. Они в Windows\System32 лежат.

Автор: Akina 8.4.2005, 08:05
Цитата(Vadim999 @ 8.4.2005, 00:31)
Там скорее всего не хватает msvbvm60.dll(для VB6) или msvbvm50.dll(для VB5)

Бред. Если не найден DLL или там OCX какой - об этом честно сообщается. И ни слова об ошибках.

Цитата(merlex @ 8.4.2005, 00:08)
какие нюансы нужно учесть при компилировании?

Нужно отследить все референсы программы (включая опосредованные) и контролировать версии использованных компонентов. Потому как старая версия какого-нить stddlg.dll запросто может вызвать обсыпание. Как впрочем и неверная регистрация компонента. Полагаю, именно в этом проблема.
В общем надо делать нормальный инсталлятор.

Автор: merlex 9.4.2005, 20:43
msvbvm60.dll, скинул, теперь о ошибке не сообщает, требует еще какуюто хрень, причем на разных тачках разную.
Добавлено @ 20:51
че за библиотеки там могут впринципе понадобиться помимо msvbvm60.dll ?

Автор: merlex 9.4.2005, 20:53
P-code
Native code

В чем разница?

Автор: Ch0bits 9.4.2005, 21:07
Цитата(merlex @ 9.4.2005, 20:53)
В чем разница?

По моему разница только в названии. smile
Ты попробуй скомпилить одинаковые проги в режиме P-code и "Native code", а потом сравни exe-шки.
Я не пробовал, у меня и VB нет, а то вдруг разные получатся! smile

Автор: Exception 10.4.2005, 12:20
Цитата(Vadim999 @ 9.4.2005, 22:07)
По моему разница только в названии

smile
P-Code - это промежуточный код, его легко декомпилить.
Native - это машинный код. Вот в нем и надо

Автор: merlex 10.4.2005, 21:53
я делал и в том и втом, в обоих случаях требовал msvbvm60.dll, только после этого прога запускалась на всех ХР-шных машинах (на 98 через раз), а вообще без него можно обойтись (msvbvm60.dll)? всетаки хочится сделть нормальную самостоятельную прогу, так как пользоваться ей будут люди далекие от компутеров, и без меня, им трудно будет объяснить что чтоб все работало надо длл-ку в системную папку скинуть, впринципе я сделал инсталятор в вин раре который msvbvm60.dll в %windir% кидает, но подозреваю что копировать навярняка будут уже установленную прогу? да и весит распакованный msvbvm60.dll 1.3мб , а им не объясниш что такое винрар

Автор: Akina 11.4.2005, 08:59
Цитата(merlex @ 10.4.2005, 22:53)
а вообще без него можно обойтись (msvbvm60.dll)?

нет

Цитата(merlex @ 10.4.2005, 22:53)
хочится сделть нормальную самостоятельную прогу, так как пользоваться ей будут люди далекие от компутеров, и без меня, им трудно будет объяснить что чтоб все работало надо длл-ку в системную папку скинуть,

сделай НОРМАЛЬНЫЙ инсталлер. ВинРАР, блин, он использовал... уржаться... почитай хотя бы хелп по VB6 Application Distribution...

Автор: merlex 12.4.2005, 23:05
Akina, слышь, умник блин, смотри сосмеху не помри, если по делу ниче сказать не можешь то засунь свой язык, а лучше клаву, себе сам знаешь куда.

Автор: Ch0bits 12.4.2005, 23:16
merlex
Эй! Тут тебе не базар!

ИМХО Лучший инсталлер InnoSetup
http://www.jrsoftware.org/isinfo.php

Автор: merlex 14.4.2005, 07:53
Vadim999, да я согласен, но если тут начинают, наезды не обоснованные катить то.... , InnoSetup скачал впринципе ниче, токо не понятно как им dll регистрировать при установке.

П.С. чем вин рар ему не угодил, создал SFX, в нем bat фаил, просто и сердито, и степень сжатия хорошая, а не работало только по тому что MSSTDFMT.DLL хоть и скидывался но не регистрировался. И вообще я видел программы у которых setup сделан на основе SFX
в винраре.

П.П.С. Я ждал ответа чтото типа: Чтоб посмотреть какие Dll,OCX использует твой проект кликни Проект>Ссылки, чтоб прога увидела требуемые ей библиотеки ,некоторые из них нужно зарегистрировать, в меню выполнить набери regsvr32 Dllname.DLL {ENTER} . Вот ивсе


Автор: Ch0bits 14.4.2005, 17:16
merlex
ИМХО Мне Inno нравится тем, что он поддержимает самое сильное на сегодня сжатие LZMA(7-zip), очень прост и компактен. А ещё бесплатный.
По счет регистрации dll: если их использует только твоя прога, то копируй в одну папку с ней.
Если несколько прог, то копируй в Windows\System32.
Все проги сначала ищут dll'ки в рабочем каталоге, затем в виндузе, ну а потом по регистрации в реестре.

Чтобы посмотреть какие dll,ocx,bpl,ax... использует прога, нужен какой-нибудь продвинутый TaskManager или утилита Depends из MS Application Compotability Tools.

Автор: merlex 15.4.2005, 07:57
Цитата
По счет регистрации dll: если их использует только твоя прога, то копируй в одну папку с ней.
Если несколько прог, то копируй в Windows\System32.
Все проги сначала ищут dll'ки в рабочем каталоге, затем в виндузе, ну а потом по регистрации в реестре.

ага счас, я этот фаил (MSSTDFMT.DLL) куда только не скидывал, его нужно обязательно регить.

Автор: Ch0bits 15.4.2005, 10:45
Нинай-нинай... Насколько я знаю нужно регистрировать только ActiveX и COM объекты...

MSSTDFMT.DLL как раз к таким и относится, написано в свойствах: MSSTDFMT Object Library
У меня она уже входит в поставку виндуза и не пребует регистрации.

ПыСы: И чего я сюда залез, я же на VB не пишу!

Автор: Exception 15.4.2005, 11:35
Цитата(merlex @ 14.4.2005, 08:53)
И вообще я видел программы у которых setup сделан на основе SFX
в винраре.

Наверное написанные на вб?
Я видел проги, которые вообще не требуют инсталляции. А знаешь почему? Потому что они не требуют dll-ок.
Для надежной инсталляции, поверь, лучше юзать инсталляторы.
Цитата(merlex @ 13.4.2005, 00:05)
то засунь свой язык, а лучше клаву, себе сам знаешь куда.

Правила форума читал? Полезно будет.

Автор: Akina 15.4.2005, 15:49
Цитата(merlex @ 14.4.2005, 08:53)
если тут начинают, наезды не обоснованные катить то


Цитата(merlex @ 14.4.2005, 08:53)
чем вин рар ему не угодил, создал SFX, в нем bat фаил, просто и сердито, и степень сжатия хорошая, а не работало только по тому что MSSTDFMT.DLL хоть и скидывался но не регистрировался. И вообще я видел программы у которых setup сделан на основе SFX в винраре.


А для чего тогда жалишься что он тебе компонент не зарегил? А? это ТЫ не дописАл инсталлер. Причем поначалу - полное впечатление что нет понимания сути процесса инсталляции. Посему и обложил. Не знаешь как написАть свой инсталлер - бери готовый.

Кстати, если ты посмотришь профессиональные инсталлеры на основе RARSFX (скажем Ахедовский) - то обнаружишь там много чего дополненного разработчиком для реализации отсутствующего в SFX.

PS. А ты знаешь, что ручной регистрацией компонента можно завалить полсистемы?

Автор: Вадян! 15.4.2005, 18:00
Akina
а Где можно нарыть пару тройку статеек, про инсталлеры
Цитата

Кстати, если ты посмотришь профессиональные инсталлеры на основе RARSFX (скажем Ахедовский) - то обнаружишь там много чего дополненного разработчиком для реализации отсутствующего в SFX.

я подумал ты знаеш, чтоб самому на поиски тучу времени не убить, кинь ссылку !!!
smile smile smile

Автор: Voldemar2004 16.4.2005, 20:30
У меня вопрос: как в NSIS-инсталлере записать в скрипт то что я хочу добавить собственные Dll-ки в папку Windows(XP) или WinNT (2000). И чтобы скрипт автоопределял эти папки (для 2K - WINNT, для XP- WINDOWS ) использую по дефолту Basic-script.
Добавлено @ 20:31
Да и если можно, киньте ссылку на Хелп по NSIS - инсталлеру. smile smile

Автор: merlex 16.4.2005, 23:35
Как в Inno Setup, правильно зарегить DLL-ку.
(так чтоб НЕ
Цитата
завалить полсистемы
)

Автор: Exception 17.4.2005, 12:28
Цитата(Run @ 15.4.2005, 12:35)
Правила форума читал? Полезно будет.

Почитайте еще раз smile smile smile
Один топик - один вопрос smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)