Unable to verify checksum for CreateEMF.exe
别人的问答,先抄下,再尝试{关于第一个问题,那个提示是说EXE文件的PE头结构(参考《软件调试》P756)中缺少校验和,因此无法验证这个程序文件的完整性。
使用VC工具包中的editbin工具可以为程序文件增加校验和,比如:
C:\dig\dbg\author\code\bin\Debug>editbin ftappvc8.exe /release
Microsoft (R) COFF/PE Editor Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
执行这个命令后,再调试ftappvc8.exe 时,就不会有Unable to verify checksum 这样的错误信息,通过lmv命令也可以看到新加入的校验和:
0:000> lmv m ftappvc*
start end module name
00400000 0042a000 FtAppVC8 (no symbols)
Loaded symbol image file: C:\dig\dbg\author\code\bin\Debug\FtAppVC8.exe
Image path: FtAppVC8.exe
Image name: FtAppVC8.exe
Timestamp: Sat Feb 03 05:16:35 2007 (45C3F083)
CheckSum: 0001FDBF
ImageSize: 0002A000
Translations: 0000.04b0 0000.04e0 0409.04b0 0409.04e0
不过没有校验和,通常不会影响调试,也就是说这个警告信息大多时候是可以安全的忽略的。
对于第二个问题,我推测你是使用VC6或者更老的编译器构建程序的,对于VC6,它默认会将类型符号放在VC60.PDB文件中,而WinDBG调试器并不知道到VC60.PDB文件中寻找类型符号,因此它还是提示上面的错误。解决的方法是在链接选项中将VC60.PDB中的类型符号集成到.pdb中,详情请阅读《软件调试》25章的25.7.1节,772页。}
.pdb文件(基本都在debug目录下才有),不知道如果只生产dll的会不会有。 【.pdb文件对应symbols。 同时dll要与symbols表要相对应】