I do most of my programming on the Mac so I've never made a dll before. My boss wants me to write a parser for a scripting language that we use internally and make it into a dll so that everyone else can use the same one.

I write in GNU C++ and C, it's important that it has to be GNU so that I can reuse the code to make a Mac resource too.

How do DLLs work (from a developer standpoint)? Is it up to the dll or the application using it to create a thread for it for it? Is there something special that I have to do so that I can have headers in different language? I'm the only one in the company using C++, most everyone else uses Javascript, Visual Basic, Python, or Java.