Create a container DLL for SDK use

Dec 11, 2014 at 12:27 PM
Hey

I'm looking to wrap up around 20 or so DLL files in to one (or maybe two) files that will provide a DLL entry point for an SDK.

I.e. third parties will take the DLL(s) and then build an application that uses the SDK.

Do you think this is possible with LibZ? From my experiments so far it looks like the correct place to use LibZ is after the final application is complete. Ideally the third party would not need to understand or utilise the LibZ library.

Cheers

Dave
Coordinator
Dec 11, 2014 at 12:43 PM
You definitely wrap SDK as well not only final application. If you want end user to be completely oblivious about LibZ you need to create interface DLL (the one which end user thinks he uses) which redirects all to calls to DLLs hidden inside (or not) it.

Look at LZ4.NET. It is actually 7 (6+1) assemblies distributed as one. Note, it is 6+1 as 6 assemblies do the job, and 1 is defining all the interfaces.

It's not THAT simple though. Remember that end-user cannot reference assemblies they don't know about (as they are hidden inside LibZ file). So you need to design interface with that in mind, for example write all your tests referencing interface assembly only.
Dec 11, 2014 at 12:51 PM
Hey

Thanks for the response. I was thinking it would require something like that, not so good for an existing SDK but I might design the next version with this in mind. I can see us using your library for some of out utility applications - that would simply them a lot.

Cheers

Dave