I'm not an expert in this area, but I think I know of a simple way you could make it where someone could not use your DLL.
Why not add a variable or "license" type property to the DLL? You could set this up in your EXE.
-
MyDll.Lincese = MyLicenseNumber
-
Then if someone else tries to use it they must know your long and complicated license number, which maybe can be encrypted or something.
Hope that starts you in the right direction.
Kenneth Gilbert Jr, MCP