dll not found

Issues related to Enigma Virtual Box
Post Reply
MaurizioF
Posts: 1
Joined: Sun Jul 01, 2018 3:34 pm

dll not found

Post by MaurizioF »

I'm trying to virtualize the program 'Scid vs pc' (64 bits), a chess database manager ,using "enigma virtual box".
I've installed the app in c:\scid, where it works perfectly. (Windows 10, 64 bits, last version).

In this app the main program is not in the main folder but in a 'bin' subfolder (that is c:\scid\bin\scid.exe).
in the same folder there ares several dlls and programs, e.g. tcl85.dll, tclpip.dll, tk85.dll, tcscid.exe etc ...

I've generated the boxed application in drive d, that is d:\scid_boxed.exe

As I start the app, I get a popup window stating that the dll tcl85 is not found.

If I move the generated exe to the 'bin' folder, than the dll is found and the program works.

The project is structured as you can see in the attached image.

Any suggestion ?

Best regards

Maurizio.
You do not have the required permissions to view the files attached to this post.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: dll not found

Post by Enigma »

Hi Maurizio,

The structure of your application is little complex and the way you are trying to do won't work.

If you want to know specifics, let me explain.

1. Packed application won't work, because it expects the dlls to be in the same folder of packed exe (this folder names "%DEFAULT FOLDER%") however you put dll files into bin folder, that's wrong.
You need to add all content of your bin folder to "%DEFAULT FOLDER%", after packing the exe will work, however, see #2.
2. Since you have files and folders over the "%DEFAULT FOLDER%", i.e. doc, images, lib, which you also want to add to EVB, then in "%DEFAULT FOLDER%" you need to add the folder with the name ".." (two dots, without quotes) and include all these files and folders to this folder. ".." means that EVB should step one folder over "%DEFAULT FOLDER%" to take these files. Hope it makes sense? However, there is another problem, see #3
3. Resulting file won't work if you put it into the root drive folder, like C:, or D:, why so? Because you have ".." folder, if the packed file is placed to root of drive C:, EVB will try to emulate ".." folder in the one folder top from C:, but there are no more folders, it's already root! If you put packed file in some child folder like C:\test\ this is OK, but not in root.
4. If all of this too complex, there is one more workaround. You may develop some exe that will run your scid.exe from bin folder. In this case, you will need to select this developed exe as the file for packing and keep the file structure as you have now.
Post Reply