delay-loaded dll

I have a debug .dll build that uses libcurl to send HTTP requests, all working fine.

With the release, the program that uses my .dll doesn't like it, the program maker recommended make the libcurl.dll as delay-loaded, and calling LoadLibrary

so I did this
 
LoadLibrary(TEXT("C:\\Users\\user\\Documents\\VirtualDJ\\Plugins64\\SoundEffect\\libcurl.dll"));

and pointed Linker>input>delay loaded dlls to libcurl.dll [literally that]

It makes the plugin compatible again but I'm no longer getting communication. I'm not sure how to proceed.

Is my LoadLibrary syntax correct?
I've been told here that trying to debug the release is pretty pointless [and it's another fork I don't understand how to do]
With the release, the program that uses my .dll doesn't like it
Can you give more detail than this? In what way does it not like it?

so I did this
LoadLibrary(TEXT("C:\\Users\\user\\Documents\\VirtualDJ\\Plugins64\\SoundEffect\\libcurl.dll"));
This is my first time reading about delay-loaded DLLs, but I don't think the explicit LoadLibrary() call is necessary.

Delay-loading the DLL should in theory not affect the behavior of the program. There must be something in your logic that's behaves incorrectly when built for release.
@helios
Not much to say, if it can't load a dll for any reason it just says "not compatible"

The instructions I was given from the lead developer, he's not often wrong.
It been a bit of a uphill battle, this is the first 3rd party lib I've ever used, even that took a few hours, a few attempts and 40 tabs to get right in debug.

I'm internet self-taught so, make a calculator, hello world, yeah easy, give me a working framework and I can do stuff. but real world it gets too abstract too quickly.
If it's a Debug vs. Release problem, then one possibility is it's differences in your project settings for Debug vs. Release. For example, maybe you're building release as 32-bit, but debug as 64-bit. You may need to individually configure them, and make sure they match in the right places. If feasible, try pasting the project file's XML for somebody to look at.
What's likely happening is that during the DLL load procedure some dependency is not being resolved and the load fails. You can use Process Monitor from SysInternals to debug this. First configure it to filter out all processes except VitualDJ, then run the program and get it to fail to load the DLL. Then search in the log the LoadLibrary event with the path to your DLL and start searching forward from there. Pay attention while reading, because events from parallel threads will appear interleaved in the log.
Thanks all, I'll look into it.
Registered users can post here. Sign in or register to post.