You can incorporate your DLL in the standard way. We are now all working with C++ directly and although it may not seem like it the build system works pretty well. You can load up a DLL at any time using the standard methods. If you are working with MSVS you can actually just follow the MSDN. I will be putting together a tutorial along the lines of what I wrote for static libraries, but I have a game and V8 to bind, which are taking priority atm.
You do not have to go through your code to add in those macros, and I’m pretty sure you cant do that to expose your objects. You will need to write the header / interfaces etc to gain access to them in the same way you would need to without UE4 sitting behind you.