I’m working on a projet that use a both AGG and Cairo graphics libraries with our coolest API : JUCE.
I’ve write some LowLevelContext for my application. One is a AGG context that provide finest vectorial drawing on screen. One is using Cairo surfaces for some other export stuff like PDF.
AGG code is template based. So hard to work with, but really easy to include to our project (no dependencies). About Cairo, C based, but Cairomm provide C++ wrapper, very simple API. No problem for using both in my application.
The problem come at the compilation level. Cairo is MinGW based and can’t be (directly) compiled with Visual Studio. For the moment, the only way i’ve found to use it is to compil using a dynamic library (3 to be exact, libcairo.dll, libpng.dll, zlib.dll). But don’t like that. At the level of the application, I prefer using static library and don’t have a “trash” directory with many dll.
I’ve search over the web for solution. But don’t find anything. So, if someone have information for me at this level, don’t hesitate to reply please.
My question come. If i can’t compil my application with static library. Do you think it’s possible to “fake” by include the dlls as ressources (BinaryBuilder) and load the library at application starting ? The Process class of Juce provide 3 methods to do a dynamic loading, but calling the loading by a path or filename. Maybe i’m confused about the process of the starting application, maybe the executable need to link before application have hand. Don’t know.
Someone ? Thank you by advance,