c/objective-c/win32/mfc/qt 异常处理与总结

来源:互联网 发布:做书架用什么材料知乎 编辑:程序博客网 时间:2024/05/14 08:58

实际异常一:

libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __CrtDbgReport
Debug/B机.exe : fatal error LNK1120: 1 unresolved externals
处理办法:
property pages->Configuration Propertyies->C/C++->Code Generation->Runtime Library->Multi-threaded Debug(/MTd)


实际异常二:
Error 30 error C3861: 'CryptReleaseContext': identifier not found c:\users\administrator\desktop\mywin32http-dll\common\include\stringprocess.h 472 1 MyWin32Http-dll
处理方法:
#define _WIN32_WINNT 0x0502


实际异常三:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
处理方法:
project->BaseClasses properties->configuration->C/C++ ->Command Line,增加/wd4430选项。

实际异常四:

中文乱码,单字节字符(vc6)、Unicode(vc8 vc9 vc10)

处理方法:

property pages->Configuration Propertyies->General->Character Set->Use Multi-Byte Character Set

 实际异常五:

VC++ 2008编译错误fatal error C1902问题的解决

处理方法:

将C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mspdbsrv.exe复制到C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下即可。

实际异常六 :

error LNK2019: unresolved external symbol wWinMain referenced in function wWinMainCRTStartup

处理方法:

1.Linker->Advanced页,将Entry Point由wWinMainCRTStartup改成WinMainCRTStartup

2.Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.
3.Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)

4.检查是否存在C的引用,如有则加上extern "C"{ }

  

 实际异常七:

处理方法:

在stdafx.h文件最上面加入#define _USE_32BIT_TIME_T

实际异常八:

Run-Time Check Failure #2 - Stack around the variable 'dect' was corrupted.

处理方法:

C/C++->Code Generation->Basic Runtime Checks=Default

实际异常九:

vc2005及以上和6.0的DLL导出函数中有wchar_t, 都无法被对方使用, 必须在vc2005及以上版本中做如下设置

处理方法:

C/C++-->Language->Treat wchar_t as Built-in Type --> No (/Zc:wchar_t-)

实际异常十:

Error 2 error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0500. Value 0x0501 or higher is recommended. c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxcomctl32.h 23 1 XPFace
处理方法

#ifndef WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif

实际异常十一:

afximpl.h中MENUGETOBJECTINFO、HRAWINPUT找不到而出错。

处理方法:

typedef struct tagMENUGETOBJECTINFO {
 DWORD dwFlags;
 UINT  uPos;
 HMENU hmenu;
 PVOID riid;
 PVOID pvObj;
} MENUGETOBJECTINFO, *PMENUGETOBJECTINFO;

typedef struct HRAWINPUT__ * HRAWINPUT;

实际异常十二:

Error 125 error LNK1104: cannot open file 'LIBC.lib' C:\test\LINK test

处理方法:

Configuration Properties->Linker->Input->Ignore Specific Default Libraries=libc.lib

实际异常十三:x264

Error 220 error LNK2019: unresolved external symbol _strtok_r referenced in function _parse_zones D:\x264\build\win32\libx264.lib(ratecontrol.obj) x264
Error 221 error LNK1120: 1 unresolved externals D:\x264\build\win32\bin\x264.exe 1 1 x264

处理方法:

将\x264\common\osdep.h中#ifdef __WIN32__改为#ifdef WIN32

实际异常十四:

Error 150 error LNK1123: failure during conversion to COFF: file invalid or corrupt C:\video\LINK creenVideo
Error 149 error CVT1100: duplicate resource.  type:MANIFEST, name:1, language:0x0413 C:\video\CVTRES creenVideo

处理方法:

1. Project propert\ linker\ 启用增量链接:否;(关闭增量链接)
2. 设置工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]
3. 在工程的.rc文件里面删除了manifest块. 删除VC6.0外部Manifest文件。设置生成嵌入式清单,并在附加清单依赖项: Microsoft.Windows.Common-Controls。

实际异常十五:

C++调用C函数找不到。

处理方法:

#ifdef __cplusplus

extern "C" {

#endif

int ConvertScreen(int width, int height, const char * src, char * dest);

#ifdef __cplusplus

}

#endif

实际异常十六:

 13 IntelliSense: a value of type "void *" cannot be assigned to an entity of type "uint8_t  *" s:\test\main.c 749 24 Test

处理方法:

函数体内,变量声明必须在开始处,不得在语句中或之后。

实际异常十七:
Error 1 error C3861: 'AtlLoadSystemLibraryUsingFullPath': identifier not found c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltransactionmanager.h 312 1 TestMfc

处理方法:

AtlLoadSystemLibraryUsingFullPath改为LoadLibraryW

实际异常十八:

....could not be opened because the microsoft visual C# 2010 compiler could not be created

处理方法:

打开注册表直接删除HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0即可

实际异常十九:

error C2668: 'pow' : ambiguous call to overloaded function

处理方法:

在vs03或者vc6.0里,可以直接写成:pow(i, 2)

在vs05和vs2008中需要改成:pow((double)i, 2),需要给i一个确定的类型。

实际异常二十: 

error C1083: Cannot open include file Permission denied

处理方法:

修改引用中路径为正确即可

 实际异常二十一:

Compiler Error C2146 syntax error : missing 'token' before identifier 'identifier'
处理方法:
检查是否没有给类型添加相应的引用

 实际异常二十二:

Error 89 error MSB6006: "cmd.exe" exited with code 9009. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets 151 6 libx264

处理方法:

安装相应的汇编编译器并复制其主程序到vc\bin文件夹下即可。

实际异常二十三:

Error 1 error C1083: Cannot open include file: 'streams.h': No such file or directory d:\users\administrator\desktop\amcap\stdafx.h 23 1 AmCap
处理方法:

安装DirectX 9.0B SDK,里面有directshow相应的资源,之后版本的sdk,directshow被并到windows platform sdk里去了。

实际异常二十四:

/lib/ld-linux.so.2:bad ELF interpreter:No such file or directory

处理方法:

yum install glibc.i686

实际异常二十五:(qt)

Qwt is configured without SVG support

处理方法:

打开qtconfig.pri,把QWT_CONFIG     += QwtSvg 屏蔽掉

实际异常二十六:

ARC forbids explicit message send of 'autorelease' (release)
处理方法:
release' is unavailable: not available inautomatic reference counting mode

Edit->Refactor->Convert to Objective-C ARC

实际异步二十七:

Error 1 error C4996: 'fopen': This function or variable may be unsafe.
处理方法:
方法一:将原来的旧函数替换成新的Security CRT functions。
方法二:用以下方法屏蔽这个警告。
1.在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏:
  #define _CRT_SECURE_NO_DEPRECATE
2.#param warning(disable:4996)
3.更改预处理定义:
  项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加_CRT_SECURE_NO_DEPRECATE
方法三:方法二没有使用新的更安全的CRT函数,显然不是一个值得推荐的方法,可是你又不想一个一个地改,那么还有一个更方便的方法:
  在预编译头文件stdafx.h里(同样要在没有include任何头文件之前)定义下面的宏:
  #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
  在链接的时候便会自动将旧函数替换成Security CRT functions。
注意:这个方法虽然使用了新的函数,但是不能消除警告(原因见红字),你还得同时使用方法

 实际异常二十八:

 Error C2664: 'std::map<_Kty,_Ty>::map(const std::less<_Ty> &)' : cannot convert parameter 1 from 'const std::pair<_Ty1,_Ty2>' to 'const std::less<_Ty> &'
处理方法:
方法一:
map<int,map<int,int>> coll;
map<int,int> temp;
temp.insert(make_pair(1,1));
coll.insert(make_pair(7,temp));
方法二:
map<int,pair<int,int>> coll;
coll.insert(make_pair(7,make_pair(1,1)));
方法三:
map<int,map<int,int>> coll;
coll.insert(make_pair(7,map<int,int>().insert(1,1)));

实际异常二十九:

terminate called after throwing an instance of 'std::bad_alloc'   what():  std::bad_alloc Aborted

处理方法:
解决内存泄露

实际异常三十:
Error 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

处理方法:
配置属性->c/c++->Preprocessor->Preprocessor Definitions->加上_CRT_SECURE_NO_WARNINGS

实际异常三十一:

0xc000007b的解决办法

处理办法:

安装dx,参考

http://blog.csdn.net/VBcom/article/details/6218535
http://blog.csdn.net/VBcom/article/details/6070705

实际异常三十二:(Qt5)

错误:C2001: 常量中有换行符
错误:C2143: 语法错误 : 缺少“;”(在“}”的前面)

处理办法:

QStringtype="代码表";
改为
QStringtype="代码表\0";

 

实际异常三十三:(Qt5)

Failed to load platform plugin "windows"

处理办法:

将Qt安装文件夹中platforms文件夹复制到应用程序目录下即可

 

实际异常三十四:(Qt5)

C:\Qt\Qt5.0.1msvc2010\5.0.1\msvc2010\include\QtCore\qdatetime.h:123: 错误:C2589: '(' : illegal token on right side of '::'
private:
    static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); }
    static inline qint64 minJd() { return Q_INT64_C(-784350574879); }
    static inline qint64 maxJd() { return Q_INT64_C( 784354017364); }

处理办法:

#undef min

 实际异常三十五

Error 5 error C2440: '=' : cannot convert from 'void *' to 'RTPpacket_t *' c:\users\enost_000\desktop\rtpforh264\rtpreceiver\rtpreceiver.cpp 336 1 RTPReceiver

处理办法:

if ((p=malloc (sizeof (RTPpacket_t)))== NULL)

改为

if ((p=(RTPpacket_t*)malloc (sizeof (RTPpacket_t)))== NULL)

 实际异常三十六

Error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CSizingControlBarG::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)' Cast from base to derived requires dynamic_cast or static_cast

处理办法:

UINT CSizingControlBarG::OnNcHitTest(CPoint point)  换成 LRESULT CSizingControlBarG::OnNcHitTest(CPoint point)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 联璧金融提现不到账怎么办 孕早期拉稀拉水怎么办 兔子嘴巴摔烂了怎么办 猫咪耳朵里有黑的东西怎么办 兔子的腿骨折了怎么办 德牧耳朵立不起来怎么办 童鞋魔术贴太长了怎么办? 许昌国贸360手机没电怎么办 滴滤油膜泡泡不破怎么办 商铺转让不出去怎么办 手机导航gps信号弱怎么办 卖家收到退货有破损怎么办 手办寄快递盒子坏了怎么办 淘宝收到衣服破损的怎么办 收到的快递少了怎么办 快递寄东西坏了怎么办 发快递东西坏了怎么办 寄快递东西碎了怎么办 手机全成英文了怎么办 冲好的奶粉结块怎么办 糖有点化了怎么办弄干 猪拉黑色稀粪便怎么办 盆栽花用肥多了怎么办 辊底式退火炉出炉温度高怎么办 黑枸杞长霉了怎么办 被子睡久了发黄怎么办 丝棉被淋了雨怎么办呢? 厚棉花被有霉味怎么办 可乐倒在棉絮上怎么办 酸奶倒在被子上怎么办 发现自家房屋墙壁发霉怎么办 布艺拖鞋发霉了怎么办 棉拖鞋洗了还臭怎么办 棉拖鞋洗了发黄怎么办 小狗5天不吃东西怎么办 手上猴子总是不停的起怎么办 真空压缩袋破了怎么办 兔子突然腿瘸了怎么办 被宠物兔咬出血怎么办 小兔子不吃东西精神不好怎么办 小狗脐带咬开了怎么办