#449 (Win) allow externals to load DLLs from the same folder

feature
closed-accepted
puredata (375)
7
2012-09-02
2012-02-06
No

In order to have objects like readanysf~ and purest_json work on Windows, they need to include DLLs for libraries like ffmpeg and curl. In order for the DLLs of the objects to load other DLLs from that same folder, SetDllDirectory() needs to be set first. This requires a minimum of Windows XP SP1 (10 years old at this point).

There are three patches included, the first sets up the new build system for this, the second sets up makefile.mingw for this. The third is the actual change to s_loader.c. I think MSVC sets WINVER automatically, but just be sure its set to 0x0502 for this to work.

Discussion

  • I applied this messily - it seems a lot of the edits had already been applied - probably broke stuff but
    am not sure how to unwind this safely.

     
  • I think this is now patched (but quite messily so there might be mistakes). Some of it was already part
    of commit 5dadaf43c9206823b434d11c6cc6c6e6be020dc3

     
  • You can always find these patches in the Pd-extended 'patch_series' branch if they seem corrupted.

    As for git, if you have messed up commits, you can always easily reset your branch back to ignore those messed up commits. Just use 'git branch' to set the branch to a given branch hash:

    git branch master 731b8721d28bc4ed0c0b533b981b7d3dd1f1df6e

     


Anonymous


Cancel   Add attachments