Getting back to the OP’s original question …
A Hand Code project is often the best way to make a DLL that will contain a Function Library to be used by many APPs or other projects. These would be Functions or Classes that do not use any kind of templates.
Making this kind of DLL with the APP system will force you to include lots of template stuff you don’t need. Also you often require Export/Import things like Global Request / Response that make it hard to use in many different APP’s that use different DCT’s. Some of these Export/Import have been made flexible in the templates or can be removed with extension templates that rewrite the EXP. Not being an APP the DLL can be “lean and mean”.
Being a DLL the Main procedure will never get used. You can put some useful code in Main to let you do some testing when you change the Project to a EXE. This EXE Main is handy to run some DLL code under the Debugger or tests.
In some of your current work you’ll see this in the 20+ EIC DLL projects that are all Hand Code. They have almost no code and simply export 1 class. This was due to the problem that C8+ cannot deal with the same File in multiple Classes causing a link error. So each class is one DLL. To test using those DLLs there are some very small hand code Projects that import them. This keeps the code as small as possible and make it easy to run under the debugger.