It all depends on how you design your application.
When creating new apps, I usually develop all logic in a console app and test it out before I move it into a GUI app.
Of course I cant reuse the user interaction, but that is not part of the application's core logic anyway. However my code should be able to handle calls from a console as well as from a GUI (it actually doesn't know anything about who's calling anyway)
I make it a point of not being dependant on either GUI or console specific functionality, and I always let the console app project live inside the .dsw (as a "sibling" to the GUI app) even after the GUI app has been created. I use it for unit testing to ensure that I don't break anything when I alter the code...
With proper design you can move everything into a GUI application (except perhaps the .cpp with the main() function) without almost any modification.
Just make sure you
1) Are not dependant on the console application. Ie no autogenerated #include "theMainApp.h".
2) Are not dependant on the console. Ie no std::cout and stuff, except in the main.cpp.
3) Don't have any application logic in the main.cpp, but only in your own classes.
So...back to your question:
>My question, how hard will it be to later add a GUI using visual c++ to my existing code?
You shouldn't attept to "add" it to your code, you should create an entire new application, designed so it can be transferred to GUI with a minimum of effort.
/Per
if (typos) cout << "My fingers are faster than my brain. Sorry for the typos.";