DLL paths, using vcpkg

In case anyone else might run into this, I found out the cause of my problems with the DLLs is simple and general and not specific to these libraries.

It turns out that vcpkg defaults to downloading 32-bit libraries. So to my great embarrassment, all the libraries I have installed are 32-bits. Once I found this out, I changed the Xojo build settings to 32-bits and tested my app, and it worked.

Well, I want 64-bits for this project, so I am now installing the right libraries with vcpkg. I expected that since I’m running 64-bit installation of Windows 10, then the microsoft tool vcpkg would know this and default to installing 64-bit libraries, but it does not do this. To me that is really not at all logical. Anyway, the trick I did not know I needed is to add the option “–triplet x64-windows” to the install command:

.\vcpkg install library_name --triplet x64-windows

The environment variable for vcpkg default behaviour can also be changed to get 64-bit libraries without having to type in the option. The steps needed to do this in Windows 10 seem a bit ridiculous to me, but I did it anyway and maybe you will want to do it too, so here they are:

  1. Click Windows Start and then click on “Settings” (this used to be “Control Panels”)
  2. Click on “System”, and type in the word “environment” into the search field
  3. Select the option that reads “Edit the System Environment Variables”
  4. in the window that appears, click the “Advanced” tab
  5. at the bottom right, click the “Environment Variables” button
  6. Under the “System Variables” pane, click the “New…” button
  7. create a new variable with this info:
    name: VCPKG_DEFAULT_TRIPLET
    value: x64-windows

Now when you use vcpkg at the Power Shell command prompt, you do not need to type --triplet x64-windows to get 64-bit libraries :slight_smile: