一个诡异的问题,搞了一个半小时。
昨日把download工程下的,ide_programmer.h和ide_programmer.cpp都引用了gatekeeper工程下的文件,
并在本工程中排除了download工程下测试用的ide_programmer.h和ide_programmer.cpp,
结果今天一早晨调试一直出奇怪的毛病:
在头文件中新加入的成员变量和成员函数都无法识别,
在该类的cpp文件使用时提示error C2039: 'readStdErr' : is not a member of 'Programer',
让人十分迷惑不解
。
最初怀疑是预编译命令的#ifdef包含错了位置,把“{”“}”等包含的程序段括错了位置,
后来排除该想法。
最后怀疑工程出现了问题,于是重新unload工程,load工程,并且把该目录下的临时ide_programmer.h和ide_programmer.cpp都从目录中删掉,
编译正常了。
略一思索,问题终于搞清楚了,因为工程编译时默认先搜索工程目录下的.h头文件,而我把临时测试用的ide_programmer.h放在了工程目录下,虽然已经从工程中排除,
但是vc2005中貌似仍然找到了该头文件,于是造成在打开的.cpp文件(引用自gatekeeper工程)中新定义使用的变量和成员方法都提示C2039错误。
问题解决:D 诡异只是表象,恩呢。提示以后碰到问题,不要只从程序代码层面考虑,而应该把思路拓宽些,
最近需要对vc的工程和解决方案管理做个深入的学习提高