I want to create a mini engine along with my game because I want to reuse the engine later.
You can reuse the engine without going down into the "DLL hell". It is simply not necessary. Just write your engine, use a namespace and place the files in a separate directory. In your game project, just include them from that directory. With the namespace, you have a fine and nice separation without the DLL hassle.
If I setup SFML with my game project directly everything works as expected but I need to setup as mentioned before.
What do you mean by "I need to setup as mentioned before"? Where stems the necessity from? Is it necessary because you think it is or because you experienced a major obstacle that could only be solved by placing your engine in a separate dll?
In my experience, there is no possible outcome that justifies countless hours wasted with Visual Studio DLL project settings. Even more, if those hours could be used to write a great game