Jump to content
rudy999

sk4d.dll Delphi 12 when app becomes 'SKIA' enabled question

Recommended Posts

I have a question in regards to the new SKI support.

When I 'enabled' SKIA in the IDE there was no noticeable change to the project or settings that I found.

I could 'disable' it on the IDE as well.

 

What I finally noticed was in the executable folder there was now a sk4d.dll.  If I move the file out of that directory the

application still ran. (I was expecting some sort of load error (?))..

My question- so even though the application is self contained otherwise - the 32 bit or 64 bit sk4d.dll file needs now to be deployed also?

 

Thanks in advance

Share this post


Link to post
1 minute ago, rudy999 said:

What I finally noticed was in the executable folder there was now a sk4d.dll.  If I move the file out of that directory the

application still ran.

Try running it on a machine that does not have Delphi 12 installed.

Share this post


Link to post

I just ran it on a VM Windows 10 without Dephi 12 installed and just the exe and not the sk4d.dll file.

--It still ran....

 

Share this post


Link to post

The bad news with this change is that the sk4d.dll is not compatible with the dll used by earlier version of delphi. This new version is by default on the path and can cause access violation with older versions of Delphi (for example if SVGIconImageList is installed).

Share this post


Link to post
11 minutes ago, Lajos Juhász said:

for example if SVGIconImageList is installed

I have SVGIconImageList installed and don't see a related sk4d.dll. The only two sk4d dlls on my system are under (Program Files)\Embarcadero\Studio\23.0\

Share this post


Link to post

When you Run the app by the IDE, it will share the PATHs of the IDE with your program. IOW, in a project without Skia enabled, using skia controls, if you click on Run on the IDE, it will work fine (because the IDE have on it own PATHs the path to the sk4d.dll), but if you run the Project1.exe on the Windows Explorer, it will crash on startup due the lack of the sk4d.dll.

Share this post


Link to post
1 hour ago, rudy999 said:

I just ran it on a VM Windows 10 without Dephi 12 installed and just the exe and not the sk4d.dll file.

Then it does not have Skia enabled

Share this post


Link to post
23 minutes ago, JonRobertson said:

I have SVGIconImageList installed and don't see a related sk4d.dll.

By default SVGIconImageList uses a different library from Skia on Windows, namely Image32

Share this post


Link to post

ok, I think I know what may be happening. I cannot test on the application I am working on but can test it on a test app.

--I 'enabled' SKIA via the IDE but that was all.  I have no SKIA components in use. So I think that is

why the app ran with or without the dll.

 

If I drop a skia component then I expect errors,,

Share this post


Link to post

Yes- on my clean VM, when trying to start a test app with no dll - Runtime error 217

with dll- working

so - the appropriate dll needs to be deployed

Share this post


Link to post

So that is a VCL application? Because enabling SKIA in an FMX application will cause all rendering to be done via SKIA, independent of the components. Another difference to remember.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×