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

本文解决了VC++编译过程中出现的错误PRJ0002及fatal error C1902问题,分析了错误码-1073741515的原因,并提供了详细的解决方案。

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

 

原帖链接:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

danxuezx

如果对你有用是我的快乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值