Hallo,
Hermie schrieb:
> Hallo!
>
> Ich habe den webkitbrowser.ocx mal kompiliert und auf einem anderen
> Computer registriert (unter C:\Program
> Files\MeinProgramm\webkitbrowser6.ocx"
> In dem selben Ordner befindet sich auf der Ordner "WebKitCairo"
> (C:\Program Files\MeinProgramm\WebKitCairo".
> Darin findet sich die Datei WebKit.dll (C:\Program
> Files\MeinProgramm\WebKitCairo\WebKit.dll), und sie ist registriert.
>
> Beim Starten meine Anwendung bekomme ich den Fehler
> "WebKit.dll not loaded, please call InitWebKitDLL beforehand (with the
> correct path)"
> ...
Ja und warum machst Dus dann nicht? Ich zitiere: "...please call
InitWebKitDLL...". Die Klasse cWebKit aus der vbRichClient4 hat eine
Methode InitWebKitDLL. Also eine Instanz von cWebKit erzeugen, und,
bevor man irgendwas von dieser Instanz verwendet, diese Methode
aufrufen. Der einzige Parameter ist der Pfad zur WebKit Dll. Damit kann
die Dll liegen, wo Du willst, Du musst hier nur den richtigen Ort angeben.
Ich setz mich jetzt mal an meine Glaskugel und gucke
tiiiiiiiiiiiiiiiiief und laaaaaaaaaaaaaaaaaaaaaaange rein. Und was sehe
ich? Die WebKit Dll wird nicht direkt von Deinem Code referenziert. Dein
Code referenziert direkt nur die vbRichClient4 Dll und evtl. noch die
vbWidgets Dll. Die vbRichClient4 Dll ihrerseits dagegen referenziert
bzw. verwendet direkt die WebKit Dll.
Und da einer der Hauptwitze an der vbRichClient4 der ist, daß man mit
ihr ohne Registrierung arbeiten kann, wäre es ein schlechter Witz, wenn
sie ihrerseits abhängige Dlls als registriert voraussetzen würde.
Also halten wir fest: Du bzw. Dein Code verwendet die vbRichClient4 Dll.
Diese setzt nicht voraus, daß die von ihr benutzte WebKit Dll
registriert ist. Sie kann registriert sein, muß aber nicht. Deshalb, da
die vbRichCLient4 Dll damit zurecht kommen muß, daß die WebKit Dll nicht
registriert ist, muß sie irgendwie herausbringen, wo diese verteufelte
WebKit Dll denn eigentlich steckt.
Dazu probiert sie es erst mal mit raten. Der erste Versuch: vielleicht
steckt sie in einem Unterordner WebKitCairo des Ordners, in dem sie (die
vbRichClient4 Dll) selbst liegt. Wenn ja: dieses Exemplar verwenden.
Das hast Du bei Deinen Versuchen geschafft, als Du die vbRichClient4 Dll
in den gleichen Ordner kopiert hast (und dort regisitriert hast), in dem
auch das UserControl und der Ordner WebKitCairo samt WebKit Dll lag.
Wenn dort nicht gefunden, rät die vbRichClient4 Dll weiter: vielleicht
liegt die WebKit Dll ja in einem Unterordner WebKitCairo des
Systemverzeichnisses.
Wenn sie auch dort nicht den Webkitbrowser findet, sucht die
vbRichClient4 Dll vielleicht noch an weiteren Orten (genau hier ist dann
meine Glaskugel dunkel geworden).
Schließlich, wenn trotz all der Sucherei nichts gefunden wurde, gibt die
vbRichClient4 Dll auf, selber zu suchen. Sie fragt nun den User, wo er
das Ding hingesteckt hat. Der müßte es ja wissen. Und man kann sich
diese doch lästige Fragerei sparen, wenn man der vbRichClient4 Dll
gleich, noch bevor sie selber sucht, den momentanen Aufenthaltsort der
WebKit Dll mitteilt.
--
Ulrich Korndoerfer
VB tips, helpers, solutions ->
http://www.prosource.de/Downloads/
MS Newsgruppen Alternativen ->
http://www.prosource.de/ms-ng-umzug.html