If you want to use MFC, you usually have to pay for VisualStudio. I usually use the "Professional" version, it should have everything you need. Only thing that's useful that any of the other versions have that would be nice is the remote debugger, you have to get one of the other versions for that (for debugging remotely on embedded systems and/or just remote systems).
It is expensive, but if you're a professional, your company should probably cover the cost. If you're a student, I believe you can get student pricing (may depend on university). If you're neither, you may have to consider using an open source alternative. There's quite a few alternative frameworks out there (wxWidgets, Qt, etc.).
I have a situation where there are two applications A & B,using C.dll ,problem is that for A, development is frozen,while for B there is a huge overhaul expected in C.dll which will then break A,So either i need to create a new dll for B and rewrite same code of C.dll and do modification ,or i can just copy C.dll project and change its ProgGUID,CLSIDs and do modifications. indeed not a neat solution
The obvious answer is to create a copy of C.DLL source, probably by starting a new branch in your source control system. You can give it a different name and CLSID and use that for the development, while leaving the operational version intact. This is fairly standard procedure for any project.