You might want to internet-search for platform independent GUI frameworks.
QT (link to wikipedia)[
^] is such a framework which may or may not conform to your requirements.
Note that the concept of DLLs is not about portabilty at all, it's about scalability and managing resources! Moreover this concept isn't even supported on many or even most non-Windows platforms.