You
can
add
source files to a project manually using the menu item
Project/Add to
Project/Files, but this is tedious. Welcome to
the fun
world of VC++!
I
tried adding the header file in question to the Headers list, modifying it,
and rebuilding, and it still didn’t rebuild. I just checked – I added
DynamicArrays.h to the Headers folder of my DynamicArray/DynamicArrayTest5
project. Built the test, made a modification to DynamicArrays.h, and hit
rebuild. Nothing happened.
I
think this is actually a problem with templates. I’ve become a heavy user of
VC++ over the past 8 months (with Microsoft’s compiler) and I’ve occasionally
seen a dependency screw-up, but mostly it works correctly. It appears to do a
proper dependency analysis. For instance, have a Proximation test code (which
uses not complicated templates, though there are some traits classes and
template functions here and there) with the following
projects:
CSum
CSumProxy
CsumStub
ProxLib
TestCreateInstance
These
are all in the same workspace and TestCreateInstance depends on the first four
projects. Furthermore, the first three projects have files that depend on a
header file ISum.h, as does the main program in TestCreateInstance. ProxLib
does not depend on this file. If I modify ISum.h and hit the rebuild button,
it rebuilds CSum.dll, CSumProxy.dll, CSumStub.dll, and finally the
TestCreateInstance object and executable (but not anything in ProxLib). This
happens in spite of the fact that ISum.h is not in any of the “Headers”
folders in these various projects. There is a folder that is automatically
created by Visual Studio called “External Dependencies” and ISum.h shows up
there.
VC++
does this correctly with and without the VTune C++ compiler selected.
Unfortunately, I can’t test Pooma with VC++ sans VTune, so I don’t know if the
dependency analysis breaks because of something Pooma is doing (like
file-naming conventions?), something VTune is doing, or if it is just a bug in
VC++ when using templates. Hmmm. Indeed, there is NO External Dependencies
folder in the DynamicArrayTest5 project, which indicates that, for whatever
reason, it is completely blowing its dependency analysis. I’m guessing that
the templates are confusing it. All I know is that it is a major pain in the
butt.
Jim