The DLL is part of the same address space as your main application once loaded (by LoadLibraryEx on Windows). If you don't use the Qt plugin mechanism then you have to resolve names in the library yourself (GetProcAddress() on Windows) and do all the plumbing. Your "classic DLL", which differs from a Qt plugin only that it is more effort to manage and less portable, can call QApplication::instance() just the same as a routine in the main program exe.
If your "classic DLL" requirement is because you want to load the resulting DLL into a non-Qt program then you have a different issue, not the one you described in your first post, and not the one from your linked post.
Bookmarks