C1010——unexpected end of file while looking for precompiled header directive
对C++的文件包含等问题我向来很乱啊,这里我新建了一个a.cpp,声明放在a.h中,然后在a.cpp中包含了a.h,结果编译时就出现了上面的错误。后来百度说需要加一个#include "stdafx.h",结果还必须加在最前面,结果就解决了。
记住要在cpp实现文件第一句话加:#include "stdafx.h"
有关stdafx.h的介绍,可参考http://www.360doc.com/content/10/0716/14/1066008_39419661.shtml
LNK2001: unresolved external symbol __endthreadex
Win32 Consle Application使用MFC的一些类如CString时编译时相信会很经常遇到一些连接错误,解决办法是修改工程——设置——选择使用MFC基础类作为静态链接库
LNK1103: debugging information corrupt; recompile module
有网友说是因为VC6用了其他版本的SDK,貌似是这样的,这时只要用release了,或这采用其他的方法,详情见下帖:
http://zhouruijun163.blog.163.com/blog/static/1077156200941893053103/
C2065: 'IP_HDRINCL' : undeclared identifier
包含#include <ws2tcpip.h>,然后再进行下面的操作...
wspiapi.h(46) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
在Microsoft Visual Studio\VC98\Include的wspipai中添加#define _WSPIAPI_COUNTOF
fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory
用VS2008编译别人代码的时候出现这个问题,据说是别人的VS2008是SP1的,我需要装VS2008的SP1才行的,但好像要装很久……网友给的解决方法是,修改stdafx.h文件:
//#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支持
#define CWinAppEx CWinApp
详情见:http://tenz.blog.163.com/blog/static/6080241720101019104831120/
error C2143: syntax error : missing ';' before '<class-head>'
说这个错误好怪异的说,纠结了好久也百度了好久,才发现是因为typedef后面没有加分号!!注意typedef是C语言关键字,而不是像#define那样的宏,所以结尾一定要加分号
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in libcmt.lib(malloc.obj)
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in libcmt.lib(free.obj)
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
好像是说默认库和其他库有冲突了……网上给的方法是在工程——设置——链接——输入——忽略库中填写有冲突的库,比如这里是MSVCRT.LIB
详情见:http://blog.163.com/zxcvbnm_74123/blog/static/60805245200810210194112/
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _gmtime already defined in libcmtd.lib(gmtime.obj)
VC6使用MFC作为静态链接库进行编译的时候出现这个问题,然后百度之后说貌似要改run-time library,分单线程、多线程、使用Dll的多线程。这时注意到我是使用Dll的,所以改:工程——设置——C/c++——Code Generation——Use run-time lib——Debug Multithreaded。
然后在C/C++——预处理器的预处理器定义中添加:_AFXDLL,再编译就通过了。
DAMAGE:After normal block(#****) :运行到delete某个指针的时候弹出这个提示
网上去搜了下,发现是个内存溢出的问题。理解了之后,这个错误的意思也就显而易见了:正常的内存块之后有破坏,也就是你写过头了,占了别人的地盘,造成了破坏。所以向前找 看是否有地方访问这个指针的时候越界了,越界了就需要改代码修改分配内存大小。
参见:http://blog.163.com/sunny_110119/blog/static/37068271201022510025869/
浙公网安备 33010602011771号