系统中同时装有VC6、VC2003和VC2005。今天在用VC2005编译一个ATL工程的时候,出现这样一条错误:
midl : command line error MIDL1004 : cannot execute C preprocessor cl.exe用VC6和VC2003编译都没有问题,就是一个新建的ATL工程,VC2005也仍是编不过。重启、重装、Google……试了N中方法还是不行,不过皇天还是不负有心人

。总算找到了个解决的办法,重新设置exe的目录。
比较VC2003和VC2005的Directories中的设置可以发现,它们都使用了$(VCInstallDir),并且目录设置都基本一样。尽管找个半天也没发现在哪里去该$(VCInstallDir)变量的值,但可以曲线救国:不用$xxxx,直接引用目录。因此把VC2005的bin的目录全部加上,如下:

最终可以正常编译了,但还是没有找到$(VCInstallDir)在什么地方定义的

。望各位指点:)