AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim Einbinden des TEdgeBrowsers

Ein Thema von MEissing · begonnen am 29. Mai 2020 · letzter Beitrag vom 3. Mär 2021
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Delphi "Sydney" (10.4) ist da!

  Alt 30. Mai 2020, 09:30
Hi jaenicke

Aus der Demo, in der ich zusätzlich die Datei VCL.Edge.pas geöffnet habe (die sich aber nicht im Ordner source/vcl/ befindet, sondern in source/internet) :
Delphi-Quellcode:
function CreateCoreWebView2EnvironmentWithOptions(
  BrowserExecutableFolder, UserDataFolder: LPCWSTR; const EnvironmentOptions: ICoreWebView2EnvironmentOptions;
  const Environment_created_handler: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler): HRESULT; stdcall;
begin
  // CheckWebView2Loaded <== Die Funktion aus deinem Thread
  if CheckWebView2Loaded then // Der Boolean scheint keine Boolean-Funktion zu sein. Zumindest gibts hier(VCL.Edge.pas) keine solche
    Result := _CreateCoreWebView2EnvironmentWithOptions(
      BrowserExecutableFolder, UserDataFolder, EnvironmentOptions, Environment_created_handler)
  else
    Result := E_FAIL;
end;
Schliesslich habe ich nach unten angegebenen Begriff auf C: und F: gesucht:

Zitat:
Informationen
---------------------------
Suchbegriff 'TCustomEdgeBrowser. CreateCoreWebView2ControllerCompleted' nicht gefunden
---------------------------
OK
Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi "Sydney" (10.4) ist da!

  Alt 30. Mai 2020, 09:38
Schliesslich habe ich nach unten angegebenen Begriff auf C: und F: gesucht:
Das Leerzeichen musste ich wegen der Forensoftware einfügen. Das ist Zeile 970 in Vcl.Edge.pas.

// CheckWebView2Loaded <== Die Funktion aus deinem Thread
if CheckWebView2Loaded then // Der Boolean scheint keine Boolean-Funktion zu sein. Zumindest gibts hier(VCL.Edge.pas) keine solche
Einfach einmal hinein debuggen... die Funktion befindet sich direkt über der von dir geposteten (Zeile 673).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi "Sydney" (10.4) ist da!

  Alt 30. Mai 2020, 10:33
Hi jaenicke

Ich hab da mal einen Screenshot gemacht:

CreateCoreWebView2Environment.jpg

Die DLL wird also nicht geladen. Dabei habe ich erst die eine und dann die andere dahin kopiert. Ich gehe jedoch davon aus, dass unter win10 64 auch die entsprechende DLL geladen werden sollte.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi "Sydney" (10.4) ist da!

  Alt 30. Mai 2020, 13:26
Ich gehe jedoch davon aus, dass unter win10 64 auch die entsprechende DLL geladen werden sollte.
Wenn du eine 64-Bit Anwendung erstellst, brauchst die 64-Bit DLL, für eine 32-Bit Anwendung die 32-Bit DLL.

Das liegt daran, dass man ohne etwas dreckige Umwege keine DLL laden kann, die für eine andere Plattform ist.

Geh doch bitte einmal bis zum LoadLibrary durch und prüfe direkt nach dessen Aufruf den letzten Fehler:
SysErrorMessage(GetLastError) Das kannst du einfach im Debugger auswerten.

Und mit dem Process Monitor kannst du prüfen, ob die korrekte DLL versucht wird zu laden.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
496 Beiträge
 
Delphi 12 Athens
 
#5

AW: Probleme beim Einbinden des TEdgeBrowsers

  Alt 30. Mai 2020, 13:46
Kurze Frage: Die TEdgeBrowser-Komponente greift ja mit Sicherheit auf die WebView-API von Windows zu. Alles andere ergäbe ja keinen Sinn, dann könnte man ja CEF benutzen. Nun müsste das aber doch bei jedem Windows vorinstalliert sein, da es ja beispielsweise von Cortana & Co verwendet wird. Wozu also die externen DLLs?
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#6

AW: Probleme beim Einbinden des TEdgeBrowsers

  Alt 30. Mai 2020, 13:58
WebView2.... das ist der Edge. Nicht der IE
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
496 Beiträge
 
Delphi 12 Athens
 
#7

AW: Probleme beim Einbinden des TEdgeBrowsers

  Alt 5. Jun 2020, 14:39
-hat sich erledigt-
Dennis
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Probleme beim Einbinden des TEdgeBrowsers

  Alt 30. Mai 2020, 19:07
Hi jaenicke

Ich hab das hier eingefügt:
Delphi-Quellcode:
function CheckWebView2Loaded: Boolean;
var ErrorString: String;
begin
  if hWebView2 = 0 then
  begin
    hWebView2 := LoadLibrary('WebView2Loader.dll');
    if hWebView2 = 0 then
      Exit(False);
Brauchts das? hWebView2 ist hier auch nach dem Aufruf von LoadLibrary 0. Bei Erfolg müsste hWebView2 jedoch das Dateihandle enthalten, also grösser null sein.
Oder hab ich da was falsch verstanden?

Dass im EXE-Verzeichnis die falsche DLL liegt (32- vs. 64Bit) kann ich ausschliessen.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#9

AW: Probleme beim Einbinden des TEdgeBrowsers

  Alt 30. Mai 2020, 22:46
Ich hab das hier eingefügt:
Wie eingefügt? Eigentlich reicht es aus den vorhandenen Code zu debuggen. Die weiteren Schritte, die ich vorgeschlagen habe, hast du aber noch nicht durchgeführt, oder?
Geh doch bitte einmal bis zum LoadLibrary durch und prüfe direkt nach dessen Aufruf den letzten Fehler:
SysErrorMessage(GetLastError) Das kannst du einfach im Debugger auswerten.

Und mit dem Process Monitor kannst du prüfen, ob die korrekte DLL versucht wird zu laden.

hWebView2 ist hier auch nach dem Aufruf von LoadLibrary 0. Bei Erfolg müsste hWebView2 jedoch das Dateihandle enthalten, also grösser null sein.
Oder hab ich da was falsch verstanden?
Das ist richtig, ja. Die DLL kann also offenbar nicht geladen werden.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:15 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-2025 by Thomas Breitkreuz