Is the base GUI really necessary?
Yes, if you want to have your DLL have a GUI - a message box is a GUI.
But the question is, do you really want your DLL to show a message box, or rather have an application which runs a gui, and links to your DLL.
When the application makes a call to the DLL when the call returns to the application you can have it return with a status, and based on that status show a message box from your application.
This will free your DLL from any dependency on GUI libs.