There are quite a few licensing packages that vary from simple to very sophisticated (and vary from inexpensive to way expensive). Most create a "wrapper" around your app and then can allow access to certain areas depending on your desire. Many allow you to make simple changes in your code to change this functionality.
I looked into Flexlm for a software app my company produced, but found it to be too expensive for us. But it is extremely versatile if you can afford it. They also take care of the licensing from a central office. So you don't have to deal with customers calling you for authorization codes... They do it through the licensing software company.
We ended up doing our own authentication based on information from the specific computer that
the app was loaded on (i.e. Windows reg key, serial numbers, ...) and creating our own simple algorithm to come up with an authorization key. At startup, if the auth key is not already there, the user is given a Registration Key which they need to call us with to get their specific authorization key. And the algorithm and authorization key system we devised allows us to determine which funtionality, and therefore dll's, they are allowed to use. So if we want to restrict them from using some functionality, the dll will not load if the auth key shows that they are not permitted. This has worked well for us in this instance.
Other than the big-name licensing software companies, there are a number of shareware licensing solutions, as well. You will need to do the research yourself because there are so many products, and each offers different functionality which you may or may not want for your specific case.
Do a search under "licensing control software" and a bunch of things w
ill pop up. Or go to shareware.com and search around. I think there are a few that will come up there.
Good luck.