把“工具”-》“选项”-》“项目和解决方案”-》“VC++目录”-》“平台(WIN32)”-》“包含文件”下的几个宏路径中的某一个给删掉了之后再编译时出现下面错误:
error PRJ0002 : 错误的结果 -1073741515 (从“C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe”返回)网上搜了一下说是把mspdb80.dll拷贝到“Microsoft Visual Studio 9.0\VC\bin”下,照着做了之后再编译出现了下面的编译错误:
1>cl : Command line warning D9028 : minimal rebuild failure, reverting to normal build
1>stdafx.cpp
1>d:\myproject\t2s-chinese\t2s-chinese\stdafx.cpp : fatal error C1902: Program database manager mismatch; please check your installation。
又搜到说把mspdbsrv.exe拷贝到“Microsoft Visual Studio 9.0\VC\bin”下可以解决,照着做了一样的报上面的错误。对VS编译器这些地方不熟,大家有没有遇到过上面的问题,恳请支个招,非常感谢。另外,谁能帮我看看,把下面的工程在您的机器上编译一下看有没有错误……
http://download.csdn.net/source/2002784

解决方案 »

  1.   

    我有照着把删了的再给添上,可是还是报错。
    我那就下面几个:
    $(DXSDK_DIR)\Include
    $(VCInstallDir)\include
    $(VCInstallDir)atlmfc\include
    $(WindowsSdkDir)\include
    $(FrameworkSDKDir)include是不是跟顺序有关?
      

  2.   

    我建一个空的控制台工程,什么代码都不添加直接编译后就抱这个错误……
    感觉有点像我的lib和include没对上
      

  3.   

    你网上的那个工程代码,可以编译通过,没什么问题。$(DXSDK_DIR)\Include 这个是你安装dxsdk后自动添加的吧。其他都一样,顺序也是。
      

  4.   

    另外,我看你的程序是vc9的,有没有安装sp1?
      

  5.   

    $(DXSDK_DIR)\Include 这个是我安装DXSDK后自动添加上的。不过在工程中的宏中看不到DXSDK_DIR的定义。它是在环境变量中定义的。
      

  6.   

    $(VCInstallDir)\include
    $(VCInstallDir)atlmfc\include
    $(WindowsSdkDir)\include
    $(FrameworkSDKDir)include 
    $(DXSDK_DIR)\Include这个顺序试试
      

  7.   


    我在win7下使用vc9,莫名其妙出了不少问题,升级了sp1后,还没出过问题。
    不管是不是这个问题,建议安装上,也建议你们组都安装上。
      

  8.   

    日志文件如下:
    命令行      
    正在创建临时文件“c:\Documents and Settings\snowy_zhang\桌面\T2S-Chinese\T2S-Chinese\Debug\RSP0000013384372.rsp”,其内容为
    [
    /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Yu"stdafx.h" /Fp"Debug\T2S-Chinese.pch" /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /c /ZI /TP ".\T2S-Chinese.cpp"
    ]
    正在创建命令行“cl.exe @"c:\Documents and Settings\snowy_zhang\桌面\T2S-Chinese\T2S-Chinese\Debug\RSP0000013384372.rsp" /nologo /errorReport:prompt”
    正在创建临时文件“c:\Documents and Settings\snowy_zhang\桌面\T2S-Chinese\T2S-Chinese\Debug\RSP0000023384372.rsp”,其内容为
    [
    /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Yc"stdafx.h" /Fp"Debug\T2S-Chinese.pch" /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /c /ZI /TP ".\stdafx.cpp"
    ]
    正在创建命令行“cl.exe @"c:\Documents and Settings\snowy_zhang\桌面\T2S-Chinese\T2S-Chinese\Debug\RSP0000023384372.rsp" /nologo /errorReport:prompt”
     输出窗口      正在编译...
    cl : Command line warning D9028 : minimal rebuild failure, reverting to normal build
    stdafx.cpp
    c:\documents and settings\snowy_zhang\桌面\t2s-chinese\t2s-chinese\stdafx.cpp : fatal error C1902: Program database manager mismatch; please check your installation
     结果      生成日志保存在“file://c:\Documents and Settings\snowy_zhang\桌面\T2S-Chinese\T2S-Chinese\Debug\BuildLog.htm”
    T2S-Chinese - 1 个错误,1 个警告
     
      

  9.   

    -1073741515是编译器要加载某个DLL而没有找到,修改“包含文件”应该不会导致这个错误,你是不是修改了“可执行文件”?把你目前的“可执行文件”路径列出来看看。
      

  10.   

    可执行文件列如下:
    E:\software\DXSDK_Mar09\Utilities\Bin\x86
    D:\MyProject\DriverStudy\namelookup_lib\namelookup_lib\Debug
    $(VCInstallDir)bin
    $(WindowsSdkDir)\bin
    E:\software\WIN7SDK
    $(ProgramFiles)\HTML Help Workshop
    $(FrameworkSDKDir)bin
    $(FrameworkDir)$(FrameworkVersion)
    $(VSInstallDir)
    $(SystemRoot)\SysWow64
    $(FxCopDir)
    $(PATH)蓝色标记那一栏我刚看了一下,我D盘没有那么一个路径。在D:\MyProject\DriverStudy下面没有\namelookup_lib\namelookup_lib\Debug
      

  11.   

    跟我的2008对比了一下,发现你的路径少了几个,加上试试:
    $(VSInstallDir)Common7\Tools\bin
    $(VSInstallDir)Common7\Tools
    $(VSInstallDir)Common7\ide
      

  12.   

    微软提供了一个工具叫err.exe能查询错误码至于C1902,MSDN说法如下。从说明看,mspdbsrv.exe, mspdbcore.dll, and mspdbXX.dll 这三个文件要么在你path中没有,要么版本不匹配。首先在你机器上找这三个文件,看看它版本是什么。然后找一个安装了visual studio 2008的朋友的机器,看看他们是不是有这三个文件,如果有,把他们的拷贝过来试试。A program database file (.pdb) was created using a newer version of mspdbXX.dll than the one the compiler found on your system. This error usually indicates that mspdbsrv.exe or mspdbcore.dll are missing or have different versions than mspdbXX.dll. (The XX placeholder in the mspdbXX.dll file name changes with each product release. For example, in Visual Studio 2005 the file name is mspdb80.dll.)Ensure matching versions of mspdbsrv.exe, mspdbcore.dll, and mspdbXX.dll are installed on your system. Ensure that mismatched versions have not been copied to the directory that contains the compiler and link tools for your target platform. For example, you might have copied the files so you could invoke the compiler or link tool from the command prompt without setting the PATH environment variable accordingly.
      

  13.   

    我的都在%VSInstallDir%\Common7\IDE下,版本都是
      
    9.0.21022.8
     
      

  14.   

    非常感谢您的指点,我去download体验一下。
      

  15.   

    当时是别人写的一段代码在我机器上编译,在他本机上他修改了系统的一个头文件里的版本控制宏然后编译通过,在我这事先我不知道然后编译不过,我之前有遇到这样的问题,那时是因为我的lib和include不匹配。所以这次我也这样怀疑,我的确是只修改了“包含目录”,可能是在修改的过程中不小心滚动了鼠标中轴导致把“可执行程序”那块给修改了。
    呵呵……
    幸亏有各位大牛热心的指点……
      

  16.   

    初步体验了一下,感觉Err.exe是用来查询程序中用GetLastError得到的ErrorCode对应在哪些文件里有定义……像“-1073741515”这些编译时遇到的错误代码是否也有比较明确的定义呢?
      

  17.   

    我想说的是,如果你确信只修改了“包含目录”,问题就不这么简单了。我在win7下使用vs2008也碰到过这样那样的问题,稀里糊涂的也没解决,后来安装了sp1后就没问题了。是不是vs2008安装上
      

  18.   

    当时我的确是只想着修改“包含目录”,一定是修改过程中不小心修改到了“可执行程序”那块。
    我是在一年前装的VS2008,当时选择的是完整安装。前不久先后安装了Win7SDK和DXSDK。不过这两个是安装在E盘,当时C盘空间不够了,其他的没啥了。
      

  19.   

    http://msdn.microsoft.com/zh-cn/library/ms235533(VS.80).aspx
      

  20.   

    good,以后类似的错误也知道该怎么去获得信息了
      

  21.   

    Windows系统中的错误码大体分三类:
    1、正数,小于65536(目前之用到1W多),是Win32 API的错误码(GetLastError获取),可以在MSDN中输入system error codes来查,也可以在winerror.h中搜索错误码,查看注释信息。
    2、负数,转为十六进制后是0x80******,是HRESULT类型的错误码,直接由调用函数的返回值得到,调用组件相关函数通常返回这类错误,其中高16位为0x8007的是Win32 API错误码,可以直接取低16位来查。其余的可以在winerror.h中搜索错误码,查看注释信息。另外也可以通过程序调用FormatMessage从系统中获取错误信息。
    3、负数,转为十六进制后是0xC0******,是系统内核中使用的错误码,可以在ntstatus.h中搜索,查看注释信息。估计也可以通过某个API转换为HRESULT值,但我不清楚。此外,C/C++编译产生的错误为C****,连接产生的错误为LNK****,可以直接在MSDN中输入错误码查看说明。
      

  22.   

    cnzdgs老大,我看你这么厉害,还寻思去你博客看看呢。
    怎么是空的呢?