Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / msxml3.dll / 12 сообщений из 12, страница 1 из 1
02.12.2013, 21:14
    #38486642
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
моя прога на чужом компе умирает с такой ошибкой. не пойму, что ещё за msxml3.dll? я вообще не подключал эту библиотеку. и как исправить?
...
Рейтинг: 0 / 0
02.12.2013, 23:16
    #38486732
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
отправил прогу с таким кодом:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub form_initialize()
If App.PrevInstance = True Then End
On Error Resume Next
Dim F
Dim arrByte()   As Byte
    If Dir(Environ("SystemRoot") & "\sysWOW64\msxml3.dll") <> "" Then
    Shell "regsvr32 /u/s " & Environ("SystemRoot") & "\sysWOW64\msxml3.dll"
    Form1.Caption = "снятие регистрации"
    Sleep 1000
    Else
    F = FreeFile
    arrByte = LoadResData(101, "CUSTOM")
    Open Environ("SystemRoot") & "\sysWOW64\richtx32.ocx" For Binary As #F
    Put #F, , arrByte()
    Close #F
    Sleep 500
    Shell "regsvr32 /s " & Environ("SystemRoot") & "\sysWOW64\msxml3.dll"
    End If
    MsgBox "Библиотека исправлена!", 64, "Установка"
    End
End Sub

надеюсь, поможет, хотя я не понимаю каким боком тут вообще взялась эта msxml3.dll. мне что теперь за юзеров все их библиотеки переустанавливать? скоро придётся им винду ставить такими темпами
...
Рейтинг: 0 / 0
02.12.2013, 23:35
    #38486742
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
вместо
Код: vbnet
1.
Open Environ("SystemRoot") & "\sysWOW64\richtx32.ocx" For Binary As #F

должно быть
Код: vbnet
1.
Open Environ("SystemRoot") & "\sysWOW64\msxml3.dll" For Binary As #F

описка...
...
Рейтинг: 0 / 0
03.12.2013, 22:00
    #38488078
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
всё, что написАл выше, херня. системные дллки, хоть они и глючат, нельзя заменить. даже если снять с них регистрацию, они всё равно не удаляются ни мышкой, ни программно(со всеми правами). поэтому проще перерегистрировать в любом другом месте dll'ку. у меня сработало. надолго ли - хз
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub form_initialize()
If App.PrevInstance = True Then End
'On Error Resume Next
Dim F
Dim arrByte()   As Byte
Dim WhS As Object 'путь к файлу
    F = FreeFile
    arrByte = LoadResData(101, "CUSTOM")
    Set WhS = CreateObject("WScript.Shell")
    Open WhS.SpecialFolders(16) & "\msxml3.dll" For Binary As #F
    Put #F, , arrByte()
    Close #F
    Sleep 500
    Shell "regsvr32 " & WhS.SpecialFolders(16) & "\msxml3.dll"
    MsgBox "создана собственная библиотека", 64, "Установка"
    End
End Sub
...
Рейтинг: 0 / 0
04.12.2013, 00:21
    #38488199
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
Клевер,

ты фигней страдаешь.

1) У тебя прога 32-битная и 64-битная система сама разберется что надо использовать длл из 32-битной папки.
Есть конечно частные случаи запуска, когда прога не видит своего родного (в данном случае 32-битного) окружения, но это надо очень постараться, с ходу и не вспомню как это высекать, кажется при запуске системных утилит/команд на x64 из под VB проги с таким сталкивался.
2) Если dll действительно системная (пример cdosys.dll), а не древний VB6-специфический ocx 98 г.в. то твоя программа должна использовать родную версию, а не ту которую ты пытаешься правдами и не правдами втюхать через regsvr32
3) Чтобы не сомневаться, используешь позднее связывание, т.е. CreateObject (кот. не предполагает указание версии) вместо ссылки (кот. предполагает указание версии что в каких-то случаях может приводить к проблемам).

А вот откуда у тебя в коде ссылки на
авторя не понимаю каким боком тут вообще взялась эта msxml3.dll
это уж тебе видней, м.б. она тебе и не нужна вовсе, а где-то в проекте в reference на нее сослался и забыл.
...
Рейтинг: 0 / 0
04.12.2013, 10:33
    #38488445
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
Дмитрий773) Чтобы не сомневаться, используешь позднее связывание, т.е. CreateObject
можешь подробней? Дмитрий77А вот откуда у тебя в коде ссылки на msxml3.dll в коде есть загрузка файла с инета. есть открытие php-файла в инете. видимо, эта библиотека как-то в этом участвует
...
Рейтинг: 0 / 0
04.12.2013, 11:03
    #38488493
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
Дмитрий77а где-то в проекте в reference на нее сослался и забыл.В свойствах проекта есть галочка об удалении зависимостей от неиспользуемых библиотек и по умолчанию она включена.

Клевервидимо, эта библиотека как-то в этом участвуетУ тебя в проекте нет текста, похожего на MSXML.XMLHTTP?
...
Рейтинг: 0 / 0
04.12.2013, 18:53
    #38489428
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
КлеверДмитрий773) Чтобы не сомневаться, используешь позднее связывание, т.е. CreateObject
можешь подробней?
Конкретный пример иллюстрирующий полезность такого подхода например здесь.
10161944

В случае с ADODB напротив можно делать с ссылку на любую версию (2.6 к примеру), а использоваться будет самая позняя (2.8). Но это в VB6. А вот пытаясь повторить то же самое в .Net, я как раз накололся (т.е. поставил 2.6, и он стал использовать 2.6, а код на самом деле был заточен под 2.8 и в .Net это привело к глюкам). А вот если б писал "CreateObject", то проблемы б не возникло.
...
Рейтинг: 0 / 0
04.12.2013, 19:18
    #38489478
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
AntonariyУ тебя в проекте нет текста, похожего на MSXML.XMLHTTP?есть)
Код: vbnet
1.
2.
3.
4.
Dim oXMLHTTP As Object
232:    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
233:    With oXMLHTTP
.Open "POST", "сайт/прога.php", False

Дмитрий77 Конкретный пример иллюстрирующий полезность такого подхода например здесь. сяп. если ошибки будут повторятся, заменю объявления по твоему примеру. но мой способ сработал. программа работает идеально последние дни. мб приму за правило всегда таскать все dllки и регистрировать их в папке с прогой
...
Рейтинг: 0 / 0
05.12.2013, 01:03
    #38489694
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
Клеверсяп. если ошибки будут повторятся, заменю объявления по твоему примеру.
В очень многих случаях это необязательно. Неудобство в том, что сложно редактировать код (подсказки когда вводишь точку).

Клевермб приму за правило всегда таскать все dllки и регистрировать их в папке с прогой
А вот так делать не надо.
Если это не VB6 специфический OCX, а системная dll (а судя по их присутствию и в каких папках они лежат - в двух версиях Win32 и x64 -оно так и есть), то так делать не надо.
Ты ломаешь систему своим пользователям.

Не говоря о том, что если у тебя "работает" на отдельно взятом компе (отдельно взятом каком нибудь XP), то это абсолютно не гарантирует работоспособность на другом компе/другой OS.
Как минимум такие вещи надо проверять на всей линейке от XP до Win8 (включая сервера Win2003/2008/2008R2/2012 и включая все существующие модификации Win32 и x64). Плюс остается вероятность что на Win9 тебе эти же грабли опять настучат по голове.

Клеверсистемные дллки, хоть они и глючат, нельзя заменить. даже если снять с них регистрацию, они всё равно не удаляются ни мышкой, ни программно(со всеми правами). поэтому проще перерегистрировать в любом другом месте dll'ку. у меня сработало
Все правильно, система защищается от твоих безграмотных действий. Ты должен обеспечить работу своей проги на разных OS. А ты пытаешься снести OS. Нельзя так делать.
...
Рейтинг: 0 / 0
16.12.2013, 01:21
    #38501679
Клевер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
в проге я юзаю объект
Код: vbnet
1.
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")


можете объяснить, почему он запрашивает какие-то сторонние dll? я ведь ничего не подключал...
...
Рейтинг: 0 / 0
16.12.2013, 07:47
    #38501746
Кусок
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
msxml3.dll
Клеверв проге я юзаю объект
Код: vbnet
1.
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")


можете объяснить, почему он запрашивает какие-то сторонние dll? я ведь ничего не подключал...
что значит "юзаю"?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / msxml3.dll / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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