1、在cmd中键入cl执行编译时会出现mspdb80.dll无法找到的情况,是因为VC\Bin\下没有“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法:
(1)直接从Common7\IDE\下复制这四个文件到VC\Bin\下即可解决
(2)添加系统变量(Path),这样:我的电脑->属性->高级->环境变量->系统变量,在path中添加C:\Program Files\Microsoft Visual Studio8\Common7\IDE;,注意结尾最后用“;”隔开!这样在用cl编译就不会出现mspdb80.dll文件找不到的错误了。
2、如果在命令行中执行dumpbin报找不到,则将VC/bin/目录下的vcvars32.bat拖到命令行中执行,执行玩后,就可以到任何目录下执行了。
3、学习MFC以前用的都是vc6.0。用vs2008时竟然连简单的MessageBox(“进入系统管理”)都报错。error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [4]”转换为“LPCTSTR”。后来发现是Unicode和ANSI之间的转化问题。vc6.0使用的字符编码是ANSI,而vs2008默认是使用Unicode编码。所以只要更改vs2008的默认字符集设置就行了。方法如下:右击工程名——>属性——>配置属性——>常规——>字符集——>改为“未设置”就行了。
4、安装了VS2008+sp1后出现链接错误:
>Copyright (C) Microsoft Corporation. All rights reserved.
1>LINK : fatal error LNK1000: Internal error during IncrBuildImage
1> Version 9.00.21022.08
1> ExceptionCode = C0000005
1> ExceptionFlags = 00000000
1> ExceptionAddress = 0111FCF7 (010A0000) "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe"
1> NumberParameters = 00000002
1> ExceptionInformation[ 0] = 00000000
1> ExceptionInformation[ 1] = 00EBD670
1>CONTEXT:
1> Eax = 401CACDC Esp = 001BF294
1> Ebx = 40008160 Ebp = 001BF2BC
1> Ecx = 00EBD670 Esi = 401CAB58
1> Edx = 001BF2AC Edi = 010AD6C0
1> Eip = 0111FCF7 EFlags = 00010246
1> SegCs = 0000001B SegDs = 00000023
1> SegSs = 00000023 SegEs = 00000023
1> SegFs = 0000003B SegGs = 00000000
1> Dr0 = 00000000 Dr3 = 00000000
1> Dr1 = 00000000 Dr6 = 00000000
1> Dr2 = 00000000 Dr7 = 00000000
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
一、下微软的补丁:KB948127补丁来解决,http://code.msdn.microsoft.com/KB948127。貌似安装了也不起作用
二、如果下载的补丁没安装成功或下载失败,可以用下面的方法手工来改工程设置
项目(Project)->属性(Property)->链接器(Linker)->常规(General) 下面的“启用增量链接(Enable Incremental Linking)”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。
不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)
选择项目,属性(Property pages)->配置属性(Configuration Properties) ->C/C++,修改“调试信息格式(Debug Information Format)”为“程序数据库(Program Database(/Zi))”即可。