Проблема с FSO
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.249] |
|
|
Правила раздела Visual Basic: Общие вопросы
FAQ Сайта
FAQ Раздела
Кладовка
Наши Исходники
API-Guide
Поиск по Разделу
MSDN Library Online
Google
Проблема с FSO
|
Сообщ.
#1
,
|
|
|
|
|
Сообщ.
#2
,
|
|
|
|
Project->References и поставить галочку напротив Microsoft Scripting Runtime
|
|
Сообщ.
#3
,
|
|
|
|
И еще нажать ОК))
|
|
Сообщ.
#4
,
|
|
|
|
![]() ![]() Dim FSO As Object Private Sub Form_Load() Set FSO = CreateObject("Scripting.FileSystemObject") End Sub - Если совсем лень... |
|
Сообщ.
#5
,
|
|
|
|
Цитата lytgeygen @ As New вот только хорошие книги настоятельно не рекомендуют использовать As New — в сложном коде это чревато тем, что ты не сможешь точно понять, где создаётся объект... а самое главное, он может быть создан случайно, при попытке проверить его значение — что приведёт к логической ошибке в коде. ПисАть Dim objFSO As Scripting.FileSystemObject Set objFSO = New Scripting.FileSystemObject совсем не сложнее, зато ты явно знаешь, когда и где создаётся объект. Цитата VisualProg @ Если совсем лень... это не "если мсовсем лень", а позднее связывание. Неудобно тем, что среда не поддерживает автокомплит для таких объектов, зато имеет огромный плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку |
|
Сообщ.
#6
,
|
|
|
|
Цитата Змей @ Аналогично и в случае с new плюс: в случае отсутствия нужной библиотеки, программа не упадёт при попытке запуска, а нормально запустится, дойдёт до попытки создать объект и сгененирует ошибку, которую можно перехватить обычным On Error — например, чтоб сообщить юзеру, где он должен взять недостающую длл`ку |
|
Сообщ.
#7
,
|
|
|
|
Цитата Змей @ перехватить обычным On Error Блин! А я то думал! Вот так всегда - учишся, подключаешь по 10 библиотек для отслеживания всех возможных ошибок, а тут когда проделанна годовая работа - "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция, которую можно впихнуть в процедуру для отслеживания ошибок! lytgeygen чтож вы ету тему год назад не подняли?... |
|
Сообщ.
#8
,
|
|
|
|
Цитата VisualProg @ "On Error" оказывается не просто НЕ частью Commondialog, это вообще самостоятельная функция Я тебя еще больше удивлю -- On Error не функция, это конструкция языка. |
|
Сообщ.
#9
,
|
|
|
|
VisualProg, если ты не заметил, "On Error" по дефолту синеньким выделяется)
|
|
Сообщ.
#10
,
|
|
|
|
Цитата ANDLL @ Аналогично и в случае с new не совсем. Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы. Если же библиотека не подключена в References, а объекты создаются через CreateObject или GetObject — программа нормально запустится, а ошибка будет в момент попытки создания объекта. например, так: ![]() ![]() Private useCAPI As Boolean 'переменная уровня модуля Private Sub Class_Initialize() On Error Resume Next Set cao = CreateObject("CAPICOM.Utilities") If cao Is Nothing Then 'библиотека микрософт криптоАПИ не установлена, будем юзать медленные самодельные функции. useCAPI = False Else 'всё нормально, можно юзать криптоАПИ. useCAPI = True End If End Sub или так: ![]() ![]() Private Sub Class_Initialize() On Error GoTo errh Set fso = CreateObject("Scripting.FileSystemObject") Set shl = CreateObject("Shell.application") Set wsc = CreateObject("WScript.Shell") Exit Sub errh: MsgBox "Не удалось подключить одну из системных библиотек. Ваша система повреждена или не соответствует требованиям программы." End End Sub |
|
Сообщ.
#11
,
|
|
|
|
Цитата Змей @ Если библиотека подключена к проекту через References — запуск программы в системе, где эта библиотека не установлена, вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы. офигеть какие новости. |
|
Сообщ.
#12
,
|
|
|
|
nash, иди нафиг
Я не для тебя говорю, а для тех, кому это и правда новость. И таких людей немало.M Кстати, nash, я обязан обратить ваше внимание на тот факт, что своим постом #11 вы грубо нарушаете Правила, п.5 |
|
Сообщ.
#13
,
|
|
|
|
Цитата Змей @ кому это и правда новость да потому что это не новость, а фигня (неправда). |
|
Сообщ.
#14
,
|
|
|
|
.
Добавлено Цитата nash @ неправда дааа??? батенька, в своём стремлении доказать кому-то свою крутизну вы уже совсем заврались. Если программа скомпилирована с заявленной в References библиотекой, то на машине, где этой библиотеки нет, она не запустится СОВСЕМ. nash, у меня и раньше были сомнения в вашей компетентности, но теперь вы их окончательно развеяли. Теперь я знаю точно: Вы некомпетентны. сорри за оффтоп. |
|
Сообщ.
#15
,
|
|
|
|
Цитата nash @ да потому что это не новость, а фигня (неправда). Эх, моя невнимательность. Мне чего-то показалось, что речь идет о Components. Хотя, и в этом случае, теоретически, можно выйти из положения, установив стартовой Sub Main. Цитата Змей @ злостный оффтоп, п5, плюс личная переписка, п9. Злостный оффтоп пошел от тебя, как и личная переписка. nash высказался по теме, и он прав |
|
Сообщ.
#16
,
|
|
|
|
Цитата B.V. @ А явного нарушения правил не было было. #11 — бессодержательный и неинформативный пост, направленный лично против меня. Все знают о той нездоровой неприязни, котороую питает ко мне товарисч насх, и которая заставляет его вступать со мной в спор всякий раз, как он видит мой пост... Цитата B.V. @ мой оффтоп был не злостный, а был лишь вполне естественным развитием темы в рамках сабжа топика и раздела.Злостный оффтоп пошел от тебя Цитата B.V. @ пошла от насха, #11и личная переписка Цитата B.V. @ если я оффтоплю, то ответ мне не может быть "в тему", как ни старайся nash высказался по теме Цитата B.V. @ он не прав.и он прав |
|
Сообщ.
#17
,
|
|
|
|
Цитата Змей @ вызовет неустранимую ошибку СРАЗУ, ещё до начала выполнения кода программы 2BV: Особенно порадовало. 2Змей: Да какая неприязнь? Мне по-фигу. Трепаться просто надо меньше. Займись делом и все устаканится. |
|
Сообщ.
#18
,
|
|
|
|
Цитата Змей @ #11 — бессодержательный и неинформативный пост, направленный лично против меня. #11 содержательный пост, единственный его недостаток -- неоднозначность. Цитата Змей @ мой оффтоп был не злостный, а был лишь вполне естественным развитием темы в рамках сабжа топика и раздела С каких пор посыл "нафиг" считается "вполне естественным развитием темы"? Цитата Змей @ он не прав. http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Components/reference.mspx Освежи память. Раннее и позднее связывание в VB отличаются лишь типами и способом объявления переменных Цитата Змей @ Думаю, лучше сделать так Нет, лучше сделать так: я оставляю все как есть, ты осознаешь свое невежество и публично извиняешься, и не только за невежество, но и за злоупотребление властью. В противном случае буду вынужден принять меры |
|
Сообщ.
#19
,
|
|
|
|
Цитата B.V. @ злоупотребление властью. Злоупотребления НЕ БЫЛО, так что извиняться не за что. Я не применял инструменты воздействия, а только сделал оправданное замечание: независимо от того, прав насх по сути или нет, его пост бессодержателен и неинформативен. Если бы он внятно сказал "я считаю, что ты неправ" — я бы не имел к нему претензий. а "офигеть какие новости" — это даже не оффтоп, а вообще флуд. Далее, одновременно я обратился к модераторам раздела посредством стандартной формы вызова, но ввместо наведения порядка в теме получил только ещё одну порцию флуда, теперь от модератора раздела... Цитата B.V. @ С каких пор посыл "нафиг" считается "вполне естественным развитием темы"? Вот тут каюсь, ибо грешен. Отвечать грубостью на глупость мне не следовало. Обязательно извинюсь, сразу, как только получу от насха извинения за безосновательно обвинение не то во во лжи, не то в неграмотности... (#14) Цитата B.V. @ вот, читай аттач... Сорри за невысокое качество, мой сканер плохо берёт книги.ты осознаешь свое невежество Это скан страницы из книги К.Гетца и М.Гилберта "Програмирование на Visual Basic 6 и VBA". Актуален последний абзац. Прикреплённый файл ________________.tif (74.09 Кбайт, скачиваний: 159)
|
|
Сообщ.
#20
,
|
|
|
|
Змей, ты теоретик от которого толку только студентам в курсовую пору.
Ну просто знай свое место и не ругайся так. А то просто противно читать. |
|
Сообщ.
#21
,
|
|
|
|
Цитата Змей @ Злоупотребления НЕ БЫЛО, так что извиняться не за что Злоупотребление было, и это не обсуждается. Цитата Змей @ вот, читай аттач... Прочел. И что? Не заметил ни слова об обработке ошибок при создании объектов, кода тоже не заметил. А то, что проект компилироваться не будет, по-моему, просто очевидно. Что там имел ввиду автор под "не будет ... выполняться", известно только ему. BlackSnake, а ты читал хоть статью по моей ссылке? Единственная ситуация, когда программа не запустится без библиотеки -- когда в References подключена tlb, описывающая функции, а не COM-объекты, и в проекте эти функции используются. В этом случае функции добавятся в секцию импорта, и уже на этапе загрузки PE будет выдано сообщение о недостающей библиотеке. Но ведь мы говорим исключительно об объектах, не так ли? У тебя не получилось меня расстроить, не переживай |
|
Сообщ.
#22
,
|
|
|
|
Простите за офф топ:
Змей, B.V. nash Чем ругаться лучше бы выложили книженцию |
|
Сообщ.
#23
,
|
|
|
|
Учитывая что раздел о VB6, И что программы на Vb6 обычно распространяют в виде exe-файлов, а не в виде зипа с сорцами, твоя картинка неуместна.
И мне с трудом вспоминается один случай, когда кое кто так же говорил ерунду, а потом пытался натравить административные санкции на возмутителя, посмевшего отметить факт наличия последней |
|
Сообщ.
#24
,
|
|
|
|
BlackSnake поставлен на премод.
|
|
Сообщ.
#25
,
|
|
|
|
кстати, более интересный вопрос:
запуск COM-EXE, которому не удается самозарегистрироваться. при этом появляется противное сообщение. как бы этого избежать. |
|
Сообщ.
#26
,
|
|
|
|
Какой запуск? Standalone или com?
|
|
Сообщ.
#27
,
|
|
|
|
Цитата domencom @ Извини, но у меня она бумажная. Сканить моим сканером — долго, нудно и лениво — не говоря уж о незаконности "выкладывания книженций". Змей, B.V. nash Чем ругаться лучше бы выложили книженцию |
|
Сообщ.
#28
,
|
|
|
|
Проблема решена!
|
|
Сообщ.
#29
,
|
|
|
|
Цитата ANDLL @ Какой запуск? Standalone или com? угу, Standalone |
|
Сообщ.
#30
,
|
|
|
|
![]() Желающие поболтать про виды связывания могут создать новый топик. Желающие выяснить отношения могут общаться посредством PM. |