powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Написал программу, а на чужом компе она требует библиотеки
36 сообщений из 36, показаны все 2 страниц
Написал программу, а на чужом компе она требует библиотеки
    #34019630
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я написал простую программу ComBase, скомпилировал.
Когда я переношу свою прогу на чужой комп, то там она на запускается, а выдаётся сообщение об ошибке, что нехватает библиотек:
comdlg32.ocx, msvbvm60.dll, ....
В моём-то компе они хранятся в папке System32.
На чужой комп можно переносить эти библиотеки в каталоге с программой, но хотелось бы отдельный исполняемый независимый файл
Вопрос: Как скомпилировать прогу так, что бы все нужные библиотеки находились в нём, внутри....
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019651
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать свою инсталяшку

Programm > microsoft Visual Studio6>Package & Deployment Wizard
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019658
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что этот Wizard делает вообще дистрибутив... а это мне совсем не кстатати....
или он может впихивать библиотеки в исполняемую программу?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019742
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай батник, который прорегистрирует эти библиотеки на другом компе.
Можно поставить бэйсик на тот комп. или использовать createobject. тада библиотеки не понадобятся
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019766
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно про createobject поподробнее?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019823
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вас не устраивает общепринятый способ установки? Касательно CreateObject, GetObject - так ведь если нет чего-то на другой станции, как это может помочь?

И, кстати, если таки не устраивает, то перепишите на VB.NET, а потом путем XCOPY переносите на другой PC.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019843
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например для того чтобы присоединиться к база данных, ты пишешь
Dim con as adodb.connection
Set con = new adodb.connection
и тд и тп. и для этого надо подключать библиотеки.
А можно через createobject.
dim con
Set con=createObject("Adodb.connection")
и тада никаких библиотек не надо подключать.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019862
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn:
Я б с радостью переписал! Да не могу... уж сильно отличаются эти языки: у меня в проге 18 577 строк кода... В том числе, работа с принтером, работа со строками фиксированной длины etc.
Ввиду сильного различия языков, полностью программа не преобразовывается в проект VB.NET - нужно переписывать то, что я начал писать ещё, можно сказать, в детстве)) 3 года назад. И ещё не известно, сделет ли она там какие-нибудь логические ошибки в результате преобразования((
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019867
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это будет работать на другом компьютере, где нет Adodb?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019877
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, я просто посчитал, что вы написали простую программу ComBase...
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019881
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет, например на VBS ваще нельзя подклюсчать библиотеки. именно с помощью CreateObject и обходятся ( по крайней мере в этом случае) без библиотеки
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019899
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slice VladConn SliceSet con=createObject("Adodb.connection")И это будет работать на другом компьютере, где нет Adodb?Будет, например на VBS ваще нельзя подклюсчать библиотеки. именно с помощью CreateObject и обходятся ( по крайней мере в этом случае) без библиотеки
Не стоит давать необдуманных ответов. Что, по-вашему, CreateObject создаст в таком случае?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019921
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019924
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, насколько я понимаю, CreateObject создает и возвращает ссылку на об"ект СОМ, но ведь не сам же об"ект?

Я лично всегда старался избегать CreateObject как наименее эффективный способ работы с СОМ...
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019930
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постойте.. откуда он вообще объект-то создаст, если самой библиотеки нету?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019941
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот-вот, и я о том...
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019956
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тада делай через бат файл. если не хочешь возиться с createObject. Не исключаю возможности, что просто не удастся в твоем случае использовать креэйтобжект, но именно с ADODB это работает
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019968
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я всегда считал, что CreateObject в VB6 требуется исключительно для "недоделанных" компонентов СОМ, которые не поддерживают "As New".

В остальных случаях - зачем?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019979
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем ВАТ файл лучше стандартного дистрибутива?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019992
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот, CreateObject НЕ РЕШИТ проблему физического отсутствия библиотеки.
БАТ файл тоже.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34019996
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы стопроцентно работало на других компах. попробуй законектится к серваку через NEW и скопирнуть на комп, где нет вижал бэйсика. Ничего не будет работать. а с Createobject - будет. собственно вот... я думаю, что это не главное отличие и может приимущество, но очень удобно
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020005
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это бат не решит??? с помошью него просто прорегистрировать библиотеку можно на другом компе. скопировав эти библиотеки с компа с вижал бэйском
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020008
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К какому серваку....
в библиотеке много того, чем я не пользуюсь. Если бы только нужные данные я мог бы перенести из библиотеки в исполняемый код, тогда бы моя прога влезла бы на дискету. А так, библиотеки занимают по несколько мегов.
И когда я переношу прогу где стоит девственно чистый 95....XP, ничего не грузится. Моя цель - взять всё нужное из библиотек, а всё лишнее - выкинуть.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020022
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо я не допонимаю.... сорри что нафлудил и ввел всех в заблуждение.
Видимо говорили о разных вещах
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020025
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так - не решит, если самих библиотек нет. Вы жа сами говорите - их надо все равно переносить. А в таком случае нужна инсталляция. Получается, вы пытаетесь подменить стандартную инсталляцию паллиативом собственного производства. Вы и компилятор будете писать свой? Вдруг VB нет.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020028
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConnЯ всегда считал, что CreateObject в VB6 требуется исключительно для "недоделанных" компонентов СОМ, которые не поддерживают "As New".

В остальных случаях - зачем?
Ого. Не ожидал.
Для того, чтобы создать экземпляр класса на другом сервере. Для того, чтобы создать экземпляр класса в новом потоке. например.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020046
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn
запутался чуток в расуждениях.... Ведь на одном компе все есть ( и прога работает и библиотеки нашлись) зачем тада компилятор нужен?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020047
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, а что, "As New" в этом случае работать не будет? Обязательно позднее связывание? Мне никогда не требовалось использовать CreateObject, потому и спрашиваю.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020194
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slice, я не запутался

Бенедикт, поток - это в английской терминологии thread, также?
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020217
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn,
позднее связывание - это работа через IDispatch, а не напрямую через vtbl, для программы и отсутствие полезных фишек типа AutoCompletion для программиста. К способу создания экземпляра отношения не имеет, разве что выполняя Set NewItem = CreateObject("MyLib.MyItem"), программа тратит время на проверку типа объекта, т.к. CreateObject возвращает Object. Если NewItem описан As MyLib.MyItem (библиотека типов MyLib упомянута в References), дальнейшее обращение к свойствам/методам пойдёт через vtbl.

Для указанных мною случаев: 1) у New нет синтаксиса для явного указания сервера. Ну нет на клиентской машине сервера приложений, он стоИт на серверной машине, как тогда создать экземпляр? 2) использование New не приведёт к желаемому эффекту - экземпляр MultiUse класса создастся в основном потоке (кстати, под IDE и CreateObject сделает то же самое).
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020218
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConnSlice, я не запутался
Бенедикт, поток - это в английской терминологии thread, также?
Да.
Еще один аргумент в пользу CreateObject - чтобы не держать постоянно лишних объектов (ссылок) в памяти. Создал объект - использовал - убил.
Возникла ошибка при создании - прога не отвалилась (как в случае с референсами), а просто выругалась.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020227
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkiades,
угу.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020271
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkiades,

Я думаю, совсем не обязательно использовать CreateObject для того, чтобы не держать лишних ссылок в памяти. Разве Set Nothing здесь не достаточен?
Что касается вопроса отвалится программа или нет - так я пишу соответственно поддержку ошибок. Но может я и чего-то не знаю. В таком случае было бы здорово увидеть живой код, иллюструющий бессилие On Error и полезность CreateObject, чтобы программа не отваливалась.


Бенедикт,

Спасибо за информацию о серверах и потоках. Насколько я знаю, VB6 не очень приспособлен для многопоточных задач, хотя в принципе можно.

VladConn
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020396
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел внимательнее на CreateObject. Да, там опция на имя сервера. Я бы не стал на нее надеяться: сервера могут меняться. Все-таки инсталляция надежнее. А что касается многопотоковости - использование VB6 не лучшая идея для этого.
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34020545
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot VladConn]Я бы не стал на нее надеяться: сервера могут меняться.[/qout]
Строковые параметры могут меняться, это точно . Настраиваемые параметры принято где-нибудь хранить - например, в реестре.
[quot VladConn]Все-таки инсталляция надежнее.[/qout]
Инсталляция чего? Поставить MDAC, чтоб ADODB.Command создавать локально, можно на любую клиентскую машину, а поставить какой-нибудь DCOM-сервер можно (исходя из логики приложения, цены, настроек безопасности...) только на одну специально выделенную машину, и пользоваться им будут десятки клиентов. Или технологии клиент-сервер и DCOM стали не нужны?

Насчёт многопоточности. В MSDN Library в разделе "Visual Basic Concepts" (подчёркиваю - Concepts ) есть глава "Scalability and Multithreading", есть пример "Creating a Multithreaded Test Application". Да, с точки зрения человека, привыкшего к CreateThread, EnterCriticalSection и WaitForSingleObject, это не совсем та многопоточность (хотя можно что-то подсмотреть у того же Matthew Curland-а что-то в этом роде). Это многопоточность в русле COM (да и с точки зрения ОС потоки вполне нормальные).
...
Рейтинг: 0 / 0
Написал программу, а на чужом компе она требует библиотеки
    #34022558
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут кстати у меня еще всплыло соображение насчет дистрибутива. Допустим, приложение использует библиотеки Excel. Вы, я, все-равно, составляем инсталляционный пакет, включающий нужные библиотеки. А как делать деплоймент на станцию, где нет Excel? Легально как? Ведь нужен лайсенс.

Получается, что нужен-таки CreateObject еще и из соображений легальности? Мол если есть библиотека, то она подхватится, а нет, так у нас нет прав на ее установку.
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Написал программу, а на чужом компе она требует библиотеки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]