If you have function defined elsewhere (in DX.cpp file) then you need to link them together. Including file only provides declaration to compiler, so it can compile fine. But during linking the linker needs to resolve all function/variable names. So it needs to know where is function.
You need to either "include" all necessary definitions in your main .cpp file. Or you need to pass DX.cpp (or its .obj file) also to linker when compiling executable. What MSVC IDE is doing by default is compiling each .c/.cpp file independently and then passes all .obj files to linker to produce one .exe file.
This has almost nothing to do with #include. It is about how you call compiler and linker. Make sure you pass all necessary files to linker so it can find where are each function.
There is a great episode on how compiler & linkers work from Casey. You can see it here:
https://hero.handmade.network/episode/chat/chat013/