Hi there,
Having a protected strategy (EX4 file) is a must when you sell strategies or signals, but having an Expiration Date hard-coded is not only easy to crack but also limits your ability of handling many users/customers. I am an IT engineer and I work exclusive with MT4 and Financial projects in general.
When writing a DLL for an EA, one of the most cumbersome issues to deal with, are the dependencies with C++ Redistributable Packages, if you don't have the correct Redistributable installed in your PC, then the EA+DLL will start to give problems and fail. Because of this, I'll deliver a solution for your project written in C#, so your EA connects directly to C#, which only needs the .NET Framework already installed in most modern PCs.
Having a DLL which is used by an EA written in .NET is of significant advantage, not only because of you are getting rid of the dependencies with the Redistributable Packages, but also because DLLs in C++ are by far more error prone than .NET DLLs. In the end, you will end up having a simple, small and sleek DLL written in C# which you can easily update with low effort.
Plus, with your DLL in C# (and as you require), you can easily implement user security, where the DLL connects to a server of yours to validate the credentials provided by the user and grant or deny the use of the EA or parts of it. You only have to maintain a SQL database with the credentials of the users allowed to access the EA.
Regards,
Eng. John P.