报错集合

来源:互联网 发布:mv歌词制作软件 编辑:程序博客网 时间:2024/05/01 23:05

+++++++++++++++++++++++++++++++++++++++++++++

+++++++ MSVCR80D.dll not found解决方案 +++++++++++

+++++++++++++++++++++++++++++++++++++++++++++

VS 2005中建立的Win32工程总出现这样的运行错误:"MSVCR80D.dll not found"
好几次了,总结各种解决方法如下:

     原因:(不知道在说啥)由于VS.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个<程序名>.exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt.exe),结果不好用,好像是fat32下时间戳有问题(在ntfs下这个问题就没有了),搞得manifest有时嵌入不到exe中(默认配置是嵌入的,所以就报错找不到dll

解决方法:(任选一个即可)
1.
生成Debug版本项目时,未打开连接器的/MANIFEST开关。在'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest' YES 改成 NO 就可以了.

 

2.属性->配置属性->清单工具->常规下有一个使用FAT32解决办法,把它选成是,就可以了。

 

 

3.如果建立的是Win32的项目的话可以在项目-(项目名)属性-配置属性-C/C++-代码生成-运行时库 将其改为多线程调试 /MTd

 

4.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下,就可以运行那个程序了。

5Debug版本中第一次生成的.res文件删除后重新Build一次

6.采用Release模式,不要采用Debug模式就可以了(我就是用的这种方法,很好很强大,但不知道什么原因)

此法太复杂,懒得试拉.

7.可以试试重新生成一个新的控制台项目或win32项目。如果你的项目,不是建立在msvc2005默认的路径下的话。

 

 

+++++++++++++++++++++++++++++++++++++++++++++

++++++ LNK2019  MSVCRTD.lib   解决方案 +++++++++++

+++++++++++++++++++++++++++++++++++++++++++++

在使用Microsoft Visual Studio 2005从现有的cpp文件新建一个工程,编译无法通过,出现如下的对话框:无法启动程序"e:/mydocument/test.exe"
系统找不到指定的文件。

MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
1>Debug/test.exe : fatal error LNK1120: 1
个无法解析的外部命令
1>
生成日志保存在“file://e:/mydocument/Debug/BuildLog.htm”
1>test - 2
个错误,0 个警告

在网上发现有个兄台是如下错误,呵呵,差不多啦
error LNK2001: unresolved external symbol _WinMain@16
debug/main.exe:fatal error LNK 1120:1 unresolved externals
error executing link.exe;

我用VS2005建的是控制台程序,入口函数是main, 为什么会有WinMain出现呢?奇怪!
我是先建立.c/.cpp文件的,然后将该文件用vs2005打开,创建工程,再编译,vc这时的默认设置应该是针对控制台程序的啊,可是……

解决方法:
1在菜单中选择 Project(项目)->Properties(属性), 弹出Property Pages窗口
2在左边栏中依次选择:Configuration Properties(配置属性)->Linker(链接器)->System(系统),然后在右边栏的SubSystem(子系统)对应的项改为控制台(/SUBSYSTEM:CONSOLE)

如图:

 

 

 

+++++++++++++++++++++++++++++++++++++++++++++

++++++        C2259     不能实例化抽象类                   +++++++++++

+++++++++++++++++++++++++++++++++++++++++++++

解决方案是:在子类中实现,父类中没有实现的纯虚函数。

如果要想找到相应的没有实现函数,可以在编译下面output里面找到,如下

 

原创粉丝点击