I am not sure what you are trying to ask and im not a pro in term of dll. but some of the details you got are wrong.
First, void main is not an entry point, cause its not exposed, its not public, and its the application decision to run the void main, some .net application do not contain void main, especially vb.net programs.
Secondly entry points are like public functions, they usually perform something, and are not application by itself, u cannot see it in the application list, its not an executable, u cannot just "start" a dll. the dll need to be within an application, that mean without an application, the dll cannot run. Example, u cannot write an application, call the dll, and quit the application and expect the dll still running. The dll uses the main executable memory and only persists when the main application still alive, when the main application closes, windows will "clean" up all memory space or anything the application owns.
Dll can have 0 (which is useless) or multiple entry points, u can google easily with "dllimport entry point", basically the dll expose some functions for the developer or the operating system. Its more like a public function that can be called by many other applications. Instead of having a gigantic application with 0 dll, developers can split the application into many dll or plugins, which is easier to maintain, update or share among a team of developer, imagine you are 1 of the developer in a group of few hundred person, without dll, you need to compile the massive code which could take hours or days, if you split them into many smaller dll, everybody can work with a smaller piece of code and if anything goes wrong, just debug 1 small piece, instead of a giant codebase.
And dll is a good way for oem to work with certain devices, ie, a mykad reader have some very sensitive information like the key to access mykad, u cannot simply just release the code, which everybody can see the key, so u can hide it within the dll, and expose some functions to the developer allowing them to use the device without knowing those sensitive info. And dll usually have multiple entry points like
load - start the dll, let the dll initialize and load something into memory, without running this, will cause error accessing any functions.
user defined functions- like take in password to read the mykad(decide which level of security level. basic can only read basic info, higher can alter details, top level can even change the password of the mykad), read name, read photo, write(with certain password)
free - end the dll, release whatever memory, usually this is not needed, cause once your application ends, windows will do the clean up, but in older operating system, os wont do so, so its a memory leak situation.
To make an application, you just need to use that dll and call that dll in the correct sequence or order in your application, like i said b4, without application, dll cannot survive, basically your application is a host, allowing the dll to survive in your memory location.
This post has been edited by narf03: Apr 16 2018, 12:24 AM