原因好像是因为fat32的文件系统的时间戳有问题,ntfs分区下就没这个问题。
解决方案是:在编辑状态下,点项目菜单 -> XXX属性页 -> 配置属性 -> 清单工具,将右面的“使用FAT32解决办法”选为“是”即可。简单地,其实把程序目录下的Debug目录整个删掉,再让VS全部重新生成文件也能解决这个问题,只是可能再犯。
没有找到MFC80D.DLL的解决方法。问题出现在程序运行清单上,默认是"嵌入清单",清单文件是"$(IntDir/$(TargetFileName).embed.manifest"。调试程序运行时,不知道为什么却定位不到这个文件,我们如果手动把"程序名.embed.manifest"改为"程序名.manifest",调试程序即可定位到。
方法一:
在C:/Program Files/Microsoft Visual Studio 8/VC/redi
st/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。
方法二:
修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。