error C1902: Program database manager mismatch;please check your installation

Q:

把“工具”-》“选项”-》“项目和解决方案”-》“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”下可以解决,照着做了一样的报上面的错误。

 

A:(cnzdgs)

-1073741515是编译器要加载某个DLL而没有找到,修改“包含文件”应该不会导致这个错误,你是不是修改了“可执行文件”?
结果是在“可执行文件”下缺少了:

$(VSInstallDir)Common7/Tools/bin
$(VSInstallDir)Common7/Tools
$(VSInstallDir)Common7/ide

 

A:(cnzdgs)

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中输入错误码查看说明。

 

原帖链接:

 

你可能感兴趣的:(error C1902: Program database manager mismatch;please check your installation)