A: 

They should add fine, considering the Microsoft C compiler will compile both. If you add them to the project, they'll get passed to cl -- and I believe cl makes a choice what mode to use based on the extension of the file. You're using .cpp, which is good.

In short: Yes.

GCC will do this too, so your makefile should be reasonably portable.

Jed Smith
Note that if you're compiling C++ with `gcc`, `gcc` may not add necessary libraries at the link phase. The link step for a C++ program must always use `g++`, not `gcc`
bdonlan
+3  A: 

First of all, you shouldn't even neeed /Tc if you're building it yourself - cl.exe uses file extension to determine the type, so .c files will be compiled as C by default, and .cpp and .cxx files as C++.

For VS projects, it works in exact same way, except that you can't override this behavior (or at least I do not know how).

Pavel Minaev
Very helpful. Turns out there is an option in VS to set the "Compile As" option, one of /Tc , /Tp , or "default". I had it set to /Tc . I needed to reset it to "default". A-OK.
Cheeso
+1  A: 

There's absolutely no problems mixing C and C++ in the same project. All you'll need to do it to design your interface between C and C++ modules in tems of C functions and C data structures, an then make sure that those interface functions are declared on C++ side with C-linkage specifier extern "C".

AndreyT