Artikel-ID: 242375 - Geändert am: Dienstag, 15. Mai 2007 - Version: 7.3

PRB: Office 97 Automation Clients schlägt nach Re-compilation mit Office 2000 oder höher Typbibliothek

Alles erweitern | Alles schließen

Problembeschreibung

Automatisierungsclient, der erfolgreich eine Office 97-Anwendung automatisiert stürzt mit der gleichen Office 97-Anwendung, nachdem die Anwendung neu kompiliert wird mit einer Office 2000 oder höher Typ Bibliothek. Sie möglicherweise eine Fehlermeldung ähnlich der folgenden angezeigt:
Die Anweisung in 0 x 00000000 verweist auf Speicher bei Adresse 0 x 00000000. Der Speicher konnte nicht gelesen werden.
-oder-
Laufzeitfehler '-2147417851 (80010105) ':
Automatisierungsfehler

Ursache

Die Office 2000 oder höher Anwendung hat ein neues Element, das funktional einen Office 97-Member mit demselben Namen ersetzt (die noch in der neueren Office-Anwendung, aber ist ausgeblendet.) Wenn Ihr Automatisierungscontroller frühe Bindung und genauer gesagt Vtable Bindung verwendet wird, verweist der Eintrag in der Vtable auf binäre Implementierung der überarbeiteten-Methode. Da die neue Implementierung nicht in der Office 97-Anwendung ist, schlägt der Aufruf fehl.

Lösung

Gehen Sie folgendermaßen vor, um dieses Problem zu umgehen:
  • Verwenden Sie späten Bindung anstatt frühe Bindung.

    -oder-

  • Binden Sie an die Bibliothek Typ für die früheste Version der Office-Anwendung automatisieren möchten.
Später Bindung wird empfohlen, mehrere Versionen einer Office-Anwendung von einem Out-of-Process-Client automatisieren. Die ursprüngliche Implementierung des geänderten Members ist auch in neueren Office-Version und befindet sich in derselben Position relativ zum Anfang der Schnittstelle. Folglich eine Automatisierung der Office 2000-Client mit der Bibliothek Office 97 Typ kompiliert zusammenarbeitet oder spätere Anwendung.

Hinweis für Access-Automatisierungsclients

Wenn Sie einen Automatisierungsclient für Microsoft Access 97 und 2000 entwickeln, sollten Sie nicht die frühe Bindung verwenden: späte Bindung wird empfohlen. Das Objektmodell von Access 2000 wurde geändert, so, dass sowohl die binäre (Vtable) als auch die Dispid-Kompatibilität wird unterbrochen. Alle Clientanwendung, frühzeitig verwendet, oder Dispid-Bindung in Access 97 fehlschlagen ordnungsgemäß funktioniert, wenn in Access 2000 ausführen.

Finden Sie den Abschnitt "Informationsquellen" unten Weitere Informationen.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Code früh gebunden, z. B. die folgenden finden Sie in einen Automatisierungsclient für Microsoft Word möglicherweise veranschaulicht das Problem:
Dim oWord as New Word.Application
oWord.Documents.Add
der Add -Methode der Documents -Objekt für Word 2000 oder höher wird verbessert, und hat jetzt mehr Argumente als Word 97- Add -Methode. Frühe Bindung an den Vtable-Member findet das neue Mitglied in Word 2000 oder höher. Da der Vtable-Zeiger das Element mit Word 97 nicht gefunden wird, schlägt die Add -Methode fehl.

Sie können um dieses Problem zu beheben, indem Sie entweder:
  • Binden Sie an die Word 97 Typ Bibliothek instead of die Word 2000 oder höher Typ Bibliothek.

    -oder-

  • Ihrem Code verwenden Sie späte Bindung mit dem folgenden Code:
    Dim oWord as Object
    Set oWord = CreateObject("Word.Application")
    oWord.Documents.Add

Informationsquellen

Weitere Informationen über Datenbindung in Visual Basic finden Sie die folgende KB-Artikelnummer:
245115  (http://support.microsoft.com/kb/245115/ ) INFO: Verwenden der frühen Bindung und später Bindung in der Automatisierung
Weitere Informationen finden Sie die folgende KB-Artikelnummer:
246237  (http://support.microsoft.com/kb/246237/ ) Fehler: Access 2000 Object Model Breaks-Binär-Kompatibilität
Weitere Informationen zu einen Automatisierungsclient für mehrere Versionen von Microsoft Office-Anwendung entwickeln finden Sie im folgenden Artikel der Microsoft Knowledge Base:
247579  (http://support.microsoft.com/kb/247579/ ) Information: Verwenden Sie DISPID-Bindung zum Automatisieren von Office-Anwendungen wenn möglich

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual J++ 6.0 Standard Edition
Keywords: 
kbmt kbautomation kbprb KB242375 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 242375  (http://support.microsoft.com/kb/242375/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
 

SPRACHE AUSWÄHLEN