0.配置问题。
解决方案:略。
1.typedef void * POINTER_64 PVOID64; error:缺分号等
2.缺少tbb_debug.dll或者tbb.dll
解决方法: 复制tbb_debug.dll 到Debug下,可以将_debug去掉变成 tbb.dll放到release下。
3.error LNK2019: 无法解析的外部符号
解决方法: 通过在网上查资料,是缺少库文件,或者库文件加载错误.
4.error LNK2001: 无法解析的外部符
解决方法: 出现这个2001错误,是因为链接失败,然而链接失败,又是因为以下原因:
1>你在头文件中声明了函数,但是cpp文件缺少了函数实现部分。
2>忘了将这个.h,.cpp Add to project;
3>以上两种情况都没有做,没有将它对应的lib文件添加到Setting-> LINK中
1>你在头文件中声明了函数,但是cpp文件缺少了函数实现部分。
2>忘了将这个.h,.cpp Add to project;
3>以上两种情况都没有做,没有将它对应的lib文件添加到Setting-> LINK中
5.0x672f554d 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
解决方法:空指针,检查指针操作,特别是delete之后还有没有使用,或是根本就没有new,或者调用函数失败了。
6.头文件互相包含问题
#ifndef _TRICIRCLE_H_
#define _TRICIRCLE_H_
。。。
#endif
7.BGR-HSV
cvCvtColor(workImg,HSVImg,CV_BGR2HSV);
不能写成
cvCvtColor(workImg,HSVImg,CV_RGB2HSV);
否则会转不回来!
8.error:index is out of range.
解决方案; 图像遍历过程中越界,也就是 i 或j 大于图像的高度或者宽度。
无法启动此程序,因为计算机中丢失MFC42D.DLL9.
解决方案: “工程-设置-常规-microsoft基础类,(选择使用MFC作为静态链接库)”10.fatal error C1083: 无法打开包括文件:“qedit.h”: No such file or directory
VS2010编译 DirectShow一些项目时遇到 错误:fatal error C1083: 无法打开包括文件:“qedit.h”: No such file or directory
解决方法:
从网上下载一个 qedit.h 的头文件,或者从 vs08 安装的目录下弄一个也行。
然后拷贝下载的 qedit.h 文件到目录 C:\Program Files\Microsoft SDKs\Windows\v7.1\Include 下;
然后在之前编译出错的项目的 "stdafx.h" 的文件中头部加上:
#pragma include_alias( "dxtrans.h", "qedit.h" ) #define __IDxtCompositor_INTERFACE_DEFINED__ #define __IDxtAlphaSetter_INTERFACE_DEFINED__ #define __IDxtJpeg_INTERFACE_DEFINED__ #define __IDxtKey_INTERFACE_DEFINED__ #include "Qedit.h"就ok了~~~
备注:vs2010需要项目属性需要配置 DirectShow 开发环境,具体配置参考网络。。。
HEAP[ImgRecog.exe]: Invalid address specified to RtlFreeHeap( 02960000, 01056B78 )11.
一个可能的原因:在不同模块(工程)之间传递 C++ 类,而这两个模块用了不同的运行时库(Runtime Library)设置。例如:EXE 模块调用 DLL 模块里传递 C++ 类的函数,但 DLL 模块使用静态链接(Release 是 Multi-threaded (/MT)、Debug 是 Multi-threaded Debug (/MTd))方式编译,而 EXE 模块使用动态链接(Release 是 Multi-threaded DLL (/MD)、Debug 是 Multi-threaded Debug DLL (/MDd))方式编译。内存越界和 释放静态内存变量也会产生这种问题.
解决方案:
1.改在静态库中使用MFC为在共享DLL中使用MFC
2. 查看越界的内存,或者释放指针是否正确。
转换到 COFF 期间失败: 文件无效或损坏12.
删除...\Microsoft Visual Studio 2010\VC\bin下面的那个cvtres.exe就好了。13.未在此计算机上注册activex控件,请注册控件并重试
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll14. 无法找到“XXX.exe”的调试信息,或者调试信息不匹配-----解决方案-----
首先打开菜单 项目->项目属性页
选择 配置属性->链接器->调试->生成调试信息 改为 是
选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI)
选择 配置属性->C/C++ ->优化->优化 改为 禁用(/Od)
15. inline 函数处出现问题.
将 inline 改为 _inline .解决方案:
16. 函数内部已经定义的局部变量编译时出错。
事实上,变量已经定义并且初始化,但是由于编译环境的影响,需要将变量定义放在函数前端。解决方案: