| |
Visual-Basic EinsteigerXML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 15.07.19 14:03 |
| Hallo zusammen,
vielleich hat jemand von Euch bereits ein ähliches Problem gehabt und die Lösung gefunden. Ich habe einen neuen PC mit Windows 10 auf gesetzt und die VB6 Entwicklungsumgebung installiert. Beim ersten Compile komme ich auf den Fehler: User-defined type not defined - der Curser steht dann auf:
Dim objXML As MSXML2.DOMDocument In den References des Projektes habe ich den nachstehenden eintrag markiert:
Microsoft XML, v6.0
Fehlt noch was oder wo könnte die Ursache liegen?
Danke für Euer Feedback
Rainer | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: visualfx | Datum: 18.07.19 11:44 |
| Hallo Rainer,
die Klassen stehen bei Windows (10) in der Registry unterhalb vom Schlüssel HKEY_CLASSES_ROOT
Msxml2.DOMDocument
└ CurVer: (Standard) = Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.6.0
d. h. bei:
Dim objXML As MSXML2.DOMDocument
Dim objXML As MSXML2.DOMDocument.3.0 wird immer die Version 3.0 benutzt
nur bei
Dim objXML As MSXML2.DOMDocument.6.0 wird die Version 6.0 benutzt
Gruß, Stefan | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 18.07.19 12:13 |
| Hallo Stefan,
Danke für dein Feedback. Jetzt läuft es.
Gruss
Rainer | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 09:03 |
| Hallo,
ich "bastele" noch immer an der XML-Problematik unter Windows 10 herum. Sowohl unter Windows 7 wie auch unter Windows 10 habe ich eine Referenz auf MSXML v6.0. Bei Win7 stehen die Objekte DOMDocument, DOMDocument26, DOMDocument30, DOMDocument40 und DOMDocument60 zur Verfügung. Ich wähle DOMDocument und es funktionert. Unter Windows 10 gibt es nur noch DOMDocument60. Ich wähle hier dieses Objekt - und das Parsen der Nodes funktioniert nicht mehr. Die XML-Datei kann aber geladen werden. Sobald das Programm auf die For Each - Schleife kommt, verzweigt es sofort zum Exit der Sub. Ich habe gegoogled, diverse Foren durchsucht - aber noch keine Lösung für das Problem gefunden.
Option Explicit
Dim objXML As MSXML2.DOMDocument60
Dim objNtryNodes As MSXML2.IXMLDOMNodeList
Dim objNtry As MSXML2.IXMLDOMNode
Dim objTxDtlsNodes As MSXML2.IXMLDOMNodeList
Dim objTxDtls As MSXML2.IXMLDOMNode
Dim objNodeAmt As MSXML2.IXMLDOMNode
Dim objAttr As MSXML2.IXMLDOMAttribute
Dim objNodeZahler As MSXML2.IXMLDOMNode
..
..
Set objNtryNodes = objXML.documentElement.selectNodes( _
"./BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry")
For Each objNtry In objNtryNodes Vielleicht habe ich ja hier mehr Glück.
Danke
Rainer | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: visualfx | Datum: 29.08.19 10:03 |
| Hallo Rainer,
das ist mysteriös !
denn bei mir gibt es unter Windows 10:
- Msxml2.DOMDocument
- Msxml2.DOMDocument.3.0
- Msxml2.DOMDocument.6.0
CurVer von Msxml2.DOMDocument enthält Msxml2.DOMDocument.3.0
ich habe Dir mal die 3 Schlüssel von Msxml2.DOMDocument(.x.x) und die 3 zugehörigen CLSIDs in 6 reg-Dateien exportiert und in einer zip-Datei zusammen gefaßt
die zip-Datei mit den 6 reg-Dateien kannst Du Dir hier herunterladen:
http://www.memotech.de/Msxml2/Msxml2_reg.zip
Du kannst Dir den Inhalt der 6 reg-Dateien ja zuerst mal z. B. mit Wordpad ansehen (Öffnen mit Wordpad)
mit jeweils einem Doppel-Klick auf die 6 reg-Dateien, wird deren ihr Inhalt bei Dir in der Registry eingetragen
Gruß, Stefan
Beitrag wurde zuletzt am 29.08.19 um 10:05:10 editiert. | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 12:00 |
| Hallo Stefan,
auch auf meinem System finde ich MSXML v3.0 und MSXML v6.0. Wenn ich aber im Projekt die Version 6.0 referenziere, kann ich nur MSXML2.DOMDocument60 verwenden - und da liegt das Problem.
Mit dieser Version kann ich zwar den Load der XML-Datei machen; es ist aber nicht möglich, die einzelnen Nodes der Datei in einer Schleife zu durchlaufen. Mit der Version 3.0 funktioniert das
bestens.
Ich vermute, dass mit der 6.0 die Nodes nicht gelesen/erkannt werden. Sind hier vielleicht unterschiedliche Sprachen XPath / ... im Einsatz?
Ich habe die ZIP-Datei entpackt. Diese Komponenten sind auch bei mir enthalten.
Gruss
Rainer
Beitrag wurde zuletzt am 29.08.19 um 12:12:22 editiert. | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 12:36 |
| Hallo Stefan,
bei mir sind die Msxml2.DOMDocument und Msxml2.DOMDocument.3.0 und Msxml2.DOMDocument.6.0 in der Registry enthalten; jedoch ohne ".reg". Letzteres ist wohl nur eine Ansichtssache. Die ersten drei Dateien in Deinem ZIP konnte ich nicht finden. | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 13:31 |
| Ich habe folgenden Betrag im Web gefunden:
:
Zitat: | |
In my VB6 project I referenced MSXML 6.0 on Windows 7. And the msxml6.dll includes also MSXML 3.0. But on Windows 10 MSXML6.dll doesn't inlcudes MSXML 3.0 anymore. In my code I used both MSXML 3.0 types and MSXML 6.0 types. I need both. Sould I create a new question for that problem?
| |
Das erklärt wohl, warum das Programm unter Windows 7 mit msxml6.dll läuft; nicht jedoch unter Windows 10. | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 13:55 |
| Hi Stefan
ich kann die 6 Dateien leider nicht wie von Dir angegeben importieren. Erhalte dann die nachstehende Fehlermeldung:
Kann nicht importiert werden
Nicht alle Daten konnten in der Systemregistrierung eingetragen werden. Einige Schlüssel sind vom System oder anderen Prozessen geöffnet oder Sie verfügen nicht über ausareichende Rechte zum Ausführen dieses Vorganges.
Leider kann ich den Explorer nur "normal" aufrufen und nicht, wie bei einigen anderen Apps, mit Admin-Rechten. Das ist wohl das Problem. | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: visualfx | Datum: 29.08.19 17:07 |
| Hallo Rainer,
es wird immer mysteriöser !
ich kann bei meinem Windows 10 die reg-Dateien auch nicht zusammenführen / importieren !
auch nicht, wenn ich regedit.exe als Administrator starte und dann die reg-Dateien über Datei => Importieren ... einlesen möchte
es kommt bei mir auch immer genau dieselbe Meldung wie bei Dir ... (???)
meine Windows 10-Version lautet: Version 1903 (Build 18362.295)
vielleicht hast Du noch nicht die neuste Windows 10-Version, dann würde ich mal ein Update durchführen
Gruß, Stefan | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 29.08.19 18:55 |
| Hallo Stefan,
meine Windows-10-Version lautet: 10.0.17134 Build 17134
Wenn ich so die Nummern vergleiche, habe ich tatsächlich nicht die neueste Version. Will mal schaue,
was da an Updates vorhanden ist.
Schönen Abend
Rainer | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 30.08.19 14:32 |
| Hallo,
auch nach dem Update auf die aktuelle Windows-Version kann ich mit msxml.dll 6.0 nicht durch die Nodes iterieren. Der Set funktioniert - es wird keine Fehlermeldung angezeigt. Aber anscheinend kann die For Each-Schleife die Nodes nicht erkennen.
Ich gehe wieder auf msxml.dll v3.0 zurück - da funktioniert alles.
Danke für die Unterstützung
Rainer
Set objNtryNodes = objXML.documentElement.selectNodes( _
"./BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry")
If Not (objNtryNodes is Nothing) then
For Each objNtry In objNtryNodes
... | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: Wolfgang Schwarz | Datum: 31.08.19 17:00 |
| Genau wegen dieser Problematik habe ich vor vielen Jahren entschieden auf MSXML zu verzichten.
Man weis ja nie ob/welche MSXML-Version auf dem Zielrechner beim Kunden vorhanden ist.
Seitdem mache ich mit XML alles selbst.
Meine Anforderungen scheinen aber auch nicht so anspruchsvoll zu sein
Wolfgang Schwarz | |
Re: XML in VB6-Programm integrieren (Windows 10) | | | Autor: crosstravel | Datum: 01.09.19 14:29 |
| Ja, das ist wohl der richtige Weg. Es ist einfach unverständlich, dass MS bei einem Update (hier MSXL v6.0) keine Abwärtskompatibilität gewähleistet. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|