Lazarus - Error executing program with fpCEF

2

I'm having trouble following this simple tutorial to build a WebBrowser using fpCEF.

I downloaded the latest version of fpCEF from Github , for CEF version 3.2526, and its binaries I got from CEFBuilds (the only trusted place I found that had this old build).

Well, I'm using Lazarus 1.6 r51630 FPC 3.0.0 x86_64-win64-win32/win64 , I'm using Windows 10 x64.

When trying to run the program using the x64 binaries (putting them as the tutorial has passed) the program does not open and the debug window appears with the following lines:

00007FFA02F74163 4883c428                 add    $0x28,%rsp

And if I try to run the exe created directly I get the error External exception 80000003

If I try to run with the x86 (32-bit) binaries, I get the error OS Code 193

I'm almost inviting you to use an ActiveX control to load IE with so many errors with CEF.

What can I do to make fpCEF run?

    
asked by anonymous 20.06.2016 / 06:15

1 answer

2

1- Download the FPCEF, install the FPCEF on your Lazarus as you might have already done

2- Download the corresponding version of the cef binaries, if for example 2543 your fpcef, you have to use the CEF 2543 binaries, and so on and unzip it by creating the folder cef_binary where you will have the Release folder and Resources .

3- Within the folder of your project copy only the files from the Release folder at the root of your project. (as you may have already done)

4- Copy the Resources folder to the root of your project, leaving the Resources folder created within the project root. (as you may have already done)

5 And now the secret of your error: Make an extra copy of the icudtl.dat file that is now inside the Resources folder of the project into the project root folder as well.

6- And finally in your FormCreate ensure that the application is finding the full path of the framework binaries, because in the tutorial it used the partial path and FPCEF only works like this in older versions.

myworkdir := GetCurrentDir;
CefResourcesDirPath:=concat(myworkdir, '\Resources');
CefLocalesDirPath:=concat(myworkdir, '\Resources\locales');

(Because fpcef needs the INTEGER path to find the CEF binary, you'll obviously have to declare the variable myworkdir as a string).

Ready now will run (outside of the lazarus, or directly through the executable) without this message.

    
21.12.2016 / 15:52