AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke MsHtml in 64-Bit-Anwendung erzeugt Float Invalid Operation

MsHtml in 64-Bit-Anwendung erzeugt Float Invalid Operation

Ein Thema von Perlsau · begonnen am 5. Mai 2015 · letzter Beitrag vom 5. Mai 2015
 
Perlsau
(Gast)

n/a Beiträge
 
#1

MsHtml in 64-Bit-Anwendung erzeugt Float Invalid Operation

  Alt 5. Mai 2015, 17:23
IDE: Delphi XE7
OS: Windows 7 Ultimate 64-bit

Zum Extrahieren des reinen Textes aus einer HTML-Datei verwende ich MsHtml:
Delphi-Quellcode:
// ----- Extrahiert den Text der übergebenen HTML-Datei --------------------------------------------------------------------------
// ..... http://www.swissdelphicenter.ch/de/showcode.php?id=2352
Function GetHtmlBodyText(Const HtmlText : String) : String;
Var
  IDoc : IHTMLDocument2;
  v : Variant;

Begin
  Idoc := System.Win.ComObj.CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
  Try
    IDoc.designMode := 'on';
    While IDoc.readyState <> 'completeDo
      Application.ProcessMessages;
    v := VarArrayCreate([0, 0], VarVariant);
    v[0] := HtmlText;
    IDoc.Write(PSafeArray(System.TVarData(v).VArray));
    IDoc.designMode := 'off';
    While IDoc.readyState <> 'completeDo
      Application.ProcessMessages;
    Result := IDoc.Body.InnerText;
  Finally
    IDoc := Nil;
  End;
End;
Das funktioniert wunderbar, solange es sich um eine 32-Bit-Anwendung handelt. Lasse ich das Projekt jedoch als 64-Bit-Anwendung in der IDE (Debug-Modus) ausführen, erscheint diese Fehlermeldung und das Programm beendet sich sofort, nachdem ich auf Fortsetzen gedrückt habe:

... eine Exception der Klasse $C0000090 mit der Meldung 'c0000090 FLOAT_INVALID_OPERATION' aufgetreten.

Ohne IDE gestartet beendet sich das Programm kommentarlos.

Nun ist ja der Internet-Explorer in Win 7-64 eine 32-Bit-Anwendung, somit auch die DLL, auf die MsHtml zurückgreift. Okay, das hatten wir ja schon, daß man für das Einbinden einer DLL in eine 64-Bit-Anwendung eben auch die 64-Bit-DLL benötigt. Kein Problem, dachte ich mir, holst du dir eben den IE-64 für Win7-64. So einfach macht es mir Microsoft aber nicht, denn die Installation des IE-11-64bit bricht mit dem Hinweis auf notwendige Updates ab. Man landet dann auf dieser Seite. Gut, dann lade ich mir jetzt eben diese Updates runter und installiere sie.

Ich starte mit Windows6.1-KB2729094-v2-x64.msu
Ein Update ist für die Segoe UI-Symbol-Schriftart in Windows 7 und Windows Server 2008 R2 verfügbar. Dieses Update bietet Unterstützung für Emoji-Zeichen und einige Serversteuerelement-Glyphen, die in Windows 8 und Windows Server 2012 enthalten sind. Nach der Installation dieser Komponente müssen Sie den Computer neu starten.

Daraufhin erhalte ich folgende Fehlermeldung:

Eigenständiges Windows Update-Installationsprogramm
Das Installationsprogramm hat einen Fehler festgestellt: 0x80070422
Der angegebene Dienst kann nicht gestartet werden. Er ist deaktiviert oder nicht mit aktivierten Geräten verbunden.


Was ist das für ein Dienst? Der Windows-Installer-Service läuft (gestartet). Ich komme da erstmal nicht weiter ...

Alternativen wären:
  1. auf MsHtml zu verzichten und einen Html-Parser zu verwenden. Doch die guten kosten was, die kostenlosen taugen nichts (zumindest soweit mir bekannt). Das Projekt ist nicht kommerziell, sondern ein rein privater "Spaß", der eigentlich außer Zeit und Mühe nichts kosten sollte ...
  2. nur das 32-Bit-Kompilat zu verwenden (werde ich wohl machen müssen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz