摘要: 出处:http://news.csdn.net/a/20110415/295938.htmlboycott (haha):刚刚看到了这个用来演示一种新的物体跟踪的算法的视频,它是Zdenek Kalal博士论文里的一部分。Zdenek Kalal是英国萨里大学的一个捷克学生。他演示的是他的神奇的精确定位系统,这个系统几乎可以跟踪镜头里的任何物体,只要你能看见它,并把它选中。它能做很多神情的事情。在这个视频中,他演示了通过摄像机拍摄他的手指、把他的手指选做目标。系统于是就能精确的跟踪他的手指的动作。更令人惊奇的是,这个系统能够通过分析物体的运动来完善跟踪算法。你能在很短的时间里教会它跟踪你的手指 阅读全文
posted @ 2011-07-21 23:00 phata 阅读(291) 评论(0) 推荐(1) 编辑
摘要: 出处:http://blog.csdn.net/zhymax/article/details/2280091一、在Rich Edit Control 中显示超链接在Rich Edit Control 中显示超链接的格式,也就是给选择的文本添加CFE_LINK属性,可以通过以下两种方法实现:1、 自动检测超链接Rich Edit Control本身具有URL检测功能,可以自动识别满足要求的URL文本,并自动为该文本添加CFE_LINK属性,也就显示为超链接格式,目前控件可以检测以下前缀的URL文本:http: file: mailto: ftp: https: gopher:... 阅读全文
posted @ 2011-07-21 12:54 phata 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 一、什么是C运行时库1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX 系统函数,并且把其中最常用的部分独立出来,形成头文件和对应的 LIBRARY,C run-time library 就是这样形成的。3)随后,随着 C 语言的流行,各个 C 编译器 阅读全文
posted @ 2011-07-17 13:57 phata 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 无意中在网上看到一个对话框类CDialogSK---一个支持皮肤化的对话框类,颇感兴趣先看下CDialogSK是干什么的:(以下内容来自网上)CDialogSK---一个支持皮肤化的对话框类一、介绍该类从MFC的CDialog继承而来,支持如下特征:1、运行于win2000或者winxp平台上,可以使用任何透明色以透视对话框的区域。2、运行于win2000或者winxp平台上,可以使得整个对话框透明。3、使用位图背景。位图可以来自资源文件、bmp或者HBITMAP4、设置背景类型:标题、中心、伸缩;设置对话框的大小适合位图的大小5、可以点击对话框的任何部分允许/禁止移动对话框二、用法使用该类的 阅读全文
posted @ 2011-05-25 16:48 phata 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/wly603/ http://lh2078.blog.163.com/blog/static/568113722010711705926/ OpenCV VS与普通OpenCV函数不同在于:普通cxcore、cv函数均是C函数,而VS是利用C++的接口、多态、继承等技术构建起来的体系,由一些类、结构、全局函数组成。所以要学习和使用VS,要有较强的C++基础。“勿在浮沙筑高台”,如果不懂接口、多态、继承等C++的基本技术,还是去恶补一下再回来。 VS中的很多类并没有直接提供给用户使用,多数只提供一个全局函数作为唯一的用户接口,这种思想也大量应用. 阅读全文
posted @ 2011-05-01 16:35 phata 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 最近在研究kalman滤波在目标跟踪中的应用,opencv中的例子看不太明白。最终我在CSDN上找到一篇比较易懂的文章,转载如下(出处http://blog.csdn.net/onezeros/archive/2011/04/12/6318944.aspx):在机器视觉中追踪时常会用到预测算法,kalman是你一定知道的。它可以用来预测各种状态,比如说位置,速度等。关于它的理论有很多很好的文献可以参考。opencv给出了kalman filter的一个实现,而且有范例,但估计不少人对它的使用并不清楚,因为我也是其中一个。本文的应用是对二维坐标进行预测和平滑使用方法:1、初始化const int 阅读全文
posted @ 2011-04-28 16:43 phata 阅读(2139) 评论(0) 推荐(0) 编辑
摘要: SVN的Local方式:个人源码管理的好办法出处:http://blog.csdn.net/Raptor/archive/2005/03/18/322889.aspxSVN、Local方式、个人源码管理今天在QQ群里,有人在打听Delphi的VSS插件,于是被我B4了一番。正好我最近试用了SVN,感觉很不错,于是在群里强力推荐,以致于几乎被认为是SVN的托儿。-_-|||事实上SVN的确是我用过的最好的源码管理工具,虽然我用过的这类工具并不多,只有VSS、CVS和SVN,其它像PVCS、 TeamSource、ClearCase之类的只有耳闻,因为它们都是商业产品,并且通常用于管理大型的项目, 阅读全文
posted @ 2011-04-26 22:54 phata 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1.平面上的坐标系地理坐标是一种球面坐标。由于地球表面是不可展开的曲面,也就是说曲面上的各点不能直接表示在平面上,因此必须运用地图投影的方法,建立地球表面和平面上点的函数关系,使地球表面上任一点由地理坐标(φ、λ)确定的点,在平面上必有一个与它相对应的点,平面上任一点的位置可以用极坐标或直角坐标表示。1.1.平面直角坐标系的建立在平面上选一点O为直角坐标原点,过该点O作相互垂直的两轴X’OX和Y’OY而建立平面直角坐标系,如图5所示。直角坐标系中,规定OX、OY方向为正值,OX、OY方向为负值,因此在坐标系中的一个已知点P,它的位置便可由该点对OX与OY轴的垂线长度唯一地确定,即x=AP,y= 阅读全文
posted @ 2011-04-21 15:10 phata 阅读(1541) 评论(0) 推荐(0) 编辑
摘要: 转自:http://sites.google.com/site/opencv123/sample_explain/stereo_calib_theory关于立体视觉的傻瓜研究vinjn @ 2009立体视觉,又称双目视觉,即Stereo Vision,在机器人领域用于检测障碍物及感知周围环境。用两个摄像头对同一个场景进行拍摄,摄像头之间隔开一定距离,就和人眼一样。同一件物体在我们双眼中的成像是不同的,有一定的偏移量,这个量我们称之为视差(disparity)。即下图中的d。d:视差f:焦距P:观察的物体xl/xr:P在左右两个画面上的位置有了视差,我们可以进一步计算深度Z:Z和d成反比关系这是 阅读全文
posted @ 2011-04-05 20:32 phata 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 转自:http://sites.google.com/site/opencv123/source_reading/cvfindface、很明显cvFindFace是用于找脸的函数,涉及到的文件有src/cvaux/_cvfacedetection.hsrc/cvaux/cvfindface.cpp调用方法,初始化工作略去 CvSeq * found = cvFindFace(gray,storage);for(int i = 0; i < (found ? found->total : 0); i++ ){CvFace* face = (CvFace*)cvGetSeqElem( 阅读全文
posted @ 2011-04-05 20:26 phata 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1、几何符号⊥ ∥ ∠ ⌒ ⊙ ≡ ≌ △ ° |a| ⊥ ∽ ∠ ∟ ‖|| … ω ⑴⑵⑶【】α β γ2、代数符号&raquo; ∞ ∧ ∨ ~ ∫ ≤ ≥1/16 ≈ ∞ ∶〔〕〈〉《》「」『』】【〖3、运算符号× ÷ √ ± ≠ ≡ ≮ ≯4、集合符号A∪∩B ∈ Φ &Oslash; ¢ φ⊆ ⊂Ø5、特殊符号∑ π(圆周率)@ # ☆★○●◎◇◆□■▓⊿※¥ Γ Δ Θ Λ Ξ Ο Π Σ Φ Χ φ Ω ∏6、推理符号← ↑ → ↓ ↖ ↗ ↘ ↙ ∴ ∵ ∶ ∷ &THORN; &Ucirc; 阅读全文
posted @ 2011-04-03 23:00 phata 阅读(7633) 评论(0) 推荐(0) 编辑
摘要: 对OpenCV中涉及的三种立体匹配算法进行代码及各自优缺点总结:首先我们看一下BM算法:该算法代码:CvStereoBMState *BMState = cvCreateStereoBMState();int SADWindowSize=15; BMState->SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 9; BMState->minDisparity = 0; BMState->numberOfDisparities = 32; BMState->textureThreshold = 10; BMSt 阅读全文
posted @ 2011-03-19 12:00 phata 阅读(1947) 评论(0) 推荐(0) 编辑
摘要: 在搜测试视频时,找到andrew31在ilovematlab论坛中分享的网址链接。我转载于此,并做出详细介绍,方便大家以后使用!1. PETS2001的测试视频http://www.filewatcher.com/b/ftp/ftp.cs.rdg.ac.uk/pub/PETS2001.0.0.html内容如下,可以得到如下所示5个DATASET,有训练和测试视频:ftp://ftp.cs.rdg.ac.uk/pub/PETS2001/direct532 B2001-07-25welcome.msg5 mirrors6 B2006-10-24WWW2 mirrors532 B2001-07-25 阅读全文
posted @ 2011-03-15 10:30 phata 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 各主要数据库的连接串 将连接方式分为两大类,一类是OLEDB方式,一类是ODBC方式。收集了一段时间,整理出来,欢迎补充和修正。谢谢。 ADO.NET方式的连接与ADO类似,这里不加整理。 数据库连接串: ****A.OLEDB方式: 1.Oracle 标准连接(Standard Security): "Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd; " 这是Microsoft的格式, 下面是Oracle的格式(提供者不同) "Provider=OraOLEDB.O 阅读全文
posted @ 2011-02-22 17:27 phata 阅读(315) 评论(0) 推荐(0) 编辑
摘要: http://decsai.ugr.es/cvg/dbimagenes/Olivetti Research Laboratory in Cambridge人脸库 阅读全文
posted @ 2011-01-10 23:02 phata 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 经典图像处理使用图像lena图,想知道它的历史吗?它全景图会让你震惊!!!真相在这里。 阅读全文
posted @ 2011-01-10 22:56 phata 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 1、安装准备(此为windows环境下)首先电脑上要有c++的编译器。如mingw或visual studio。我的电脑上两个都有。配置过程大同小异,编译器要先装好。(这个IDE不自带编译器,推荐使用免费的GCC编译器——mingw)下载安装文件Code::Blocks的发行版:版本号就是它的发行年月,所以8.02版,就是08年2月份发布的,其实地相当于1.0版。Code::Blocks官方网站:www.codeblocks.org下载页面地址http://www.codeblocks.org/downloads/52、安装界面注意事项#01# 、选择“Full/完整”安装,免得一些插件没有被 阅读全文
posted @ 2011-01-04 10:34 phata 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 1. http://www.statsoft.com/textbook/support-vector-machines/ opencv中SVM类型与核函数简介,该网站有许多统计学方面的资料,但是英文的。2.http://www.opencv.org.cn/index.php/User:Ollydbg23#OpenCV.E4.B8.AD.E5.9B.BD.E8.AE.BA.E5.9D.9B.E7.B2.BE.E5.8D.8E.E5.8C.BA.E5.92.8C.E8.B5.84.E6.96.99.E6.B1.87.E6.80.BB.3DOpenCV中国论坛精华区和资料汇总3.http://vis 阅读全文
posted @ 2010-12-15 11:04 phata 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 灰度图像均值平滑 图像平滑用于去除图像中的噪声。均值平滑,就是将每个像素的灰度值用其领域的平均值代替。该算法简单,速度快,但不能完全消除椒盐噪声。 平滑模板:111111111// 均值平滑// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool SmoothBlur(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep){ int i = 0; in... 阅读全文
posted @ 2010-12-09 14:39 phata 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 灰度图像高斯平滑 图像平滑用于去除图像中的噪声。高斯平滑,就是将每个像素的灰度值用其领域的加权平均值代替。该算法简单,能够有效去除高斯噪声。 平滑模板:121242121// 高斯平滑// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool SmoothGauss(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep){ int i = 0; int ... 阅读全文
posted @ 2010-12-09 14:38 phata 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 灰度图像中值滤波 中值滤波是一种非线性型号处理方法,将每个像素的灰度值用其领域的中值代替。中值是指领域内奇数个数据按大小排序后处于中心位置的那个数。中值滤波能够在去除椒盐噪声的同时保持边缘清晰。 中值滤波是一个比较耗时的算法,为了提高速度,在程序设计时,并不需要对领域内所有点排序,只需要找到中值即可,因此这里只对前5个点进行了排序。// 中值滤波// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool SmoothMedian(unsigne... 阅读全文
posted @ 2010-12-09 14:37 phata 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 边缘检测-Laplace 算子 Laplace 算子可以卷积模板表示:0101-41010// Laplace 算子// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool Laplace(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep){ int i = 0; int j = 0; int nValue = 0; unsigned c... 阅读全文
posted @ 2010-12-09 14:34 phata 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 边缘检测-Prewitt 算子 Prewitt 算子采用以下算子分别计算一阶 x 方向和 y 方向的图像差分: -101-101-101-1-1-1000111#include <math.h>// Prewitt 算子// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool Prewitt(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep){ int i... 阅读全文
posted @ 2010-12-09 14:32 phata 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 灰度图像二值化-大津法 大津法又称最大类间方差法。对图像,记t为前景与背景的分割阈值,前景点数占图像比例为w0, 平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1。图像的总平均灰度为:u=w0*u0+w1*u1。从最小灰度值到最大灰度值遍历t,当t使得值g=w0*(u0-u)2+w1*(u1-u)2 最大时t即为分割的最佳阈值。阈值t分割出的前景和背景两部分构成了整幅图像,而前景取值u0,概率为w0,背景取值u1,概率为w1,总均值为u,根据方差的定义即得该式。因方差是灰度分布均匀性的一种度量,方差值越大,说明构成图像的两部分差别越大,当部分目标错分为背景或部分背景错分为... 阅读全文
posted @ 2010-12-09 14:30 phata 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 二值图像轮廓提取 二值图像轮廓提取只需要挖空内部像素点即可。亮点的8个相邻像素点全部为亮点,则该点为内部点,反之为轮廓点。将所有内部点置为背景点,完成轮廓提取。// 轮廓提取// 1. pImageData 图像数据// 2. nWidth 图像宽度// 3. nHeight 图像高度// 4. nWidthStep 图像行大小bool FindContours(unsigned char *pImageData, int nWidth, int nHeight, int nWidthStep){ int i = 0; int j = 0... 阅读全文
posted @ 2010-12-09 14:29 phata 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 二值图像轮廓跟踪 二值图像轮廓跟踪用于提取二值图像中的目标区域,以便对目标区域做进一步处理,如:区域填充,计算轮廓长度、面积、重心,特征提取和图像识别等。我们可以采用链码和线段表两种不同的方法来描述轮廓。链码方式描述轮廓需要记录轮廓的起点和轮廓上每一点相对于前一点的链码值列表。以8-领域链码为例,首先按照从左至右,从上至下的顺序查找轮廓起点;再按照右、右下、下、左下的顺序查找第二个轮廓点;然后按照右、右下、下、左下、左、左上、上、上右的顺序查找其它轮廓点,直到找到轮廓起点为止。 由于事先无法确定轮廓点数量,无法事先分配合适的内存空间,因此可以使用vector来动态管理内存,从而... 阅读全文
posted @ 2010-12-09 14:28 phata 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 链码表转换为线段表 链码表和线段表都可以描述轮廓,通过轮廓跟踪得到链码表,链码表可以很容易计算出轮廓长度,但轮廓填充,计算面积、重心等使用线段表会更加容易。为了后续处理的方便,往往需要将链码表转换为线段表。线段表只需要记录每条线段的两个端点坐标,中间点全部舍弃。链码表上的点如果位于线段的中间则舍弃,如果位于线段的某一个端点则保留,如果位于线段的两个端点(即线段长度为1)则需要插入一个端点,最后按照垂直方向和水平方向排序。 在程序中判断链码表上的点在线段上的位置关系比较麻烦,且位置关系只有64种,因此采用查表法简单高效,不失为极佳方案。同样,事先无法确定线段数量,可以使用vector来动态管理. 阅读全文
posted @ 2010-12-09 14:26 phata 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 计算轮廓矩形边界与重心 轮廓矩形边界即轮廓的左边界、上边界、右边界和下边界。采用线段表可以方便求得,直接求线段端点在水平方向和垂直方向的最小值和最大值即可。需要注意一个概念上的区别,轮廓矩形边界不等于轮廓的最小外接四边形。 轮廓重心同样采用线段表进行计算,分别计算各线段在水平方向和垂直方向上的加权平均,其权重为线段长度。#include <vector>typedef std::vector<POINT> ptLineTable;// 轮廓矩形边界// 1. LineTable 线段表bool ContourRect(ptLineTable LineTable, REC 阅读全文
posted @ 2010-12-09 14:24 phata 阅读(775) 评论(0) 推荐(0) 编辑
摘要: 计算轮廓长度与面积 采用链码表计算轮廓的长度,链码值为奇数时,长度为sqrt(2),否则,长度为1。统计奇数链码值数量,非奇数链码值数目为链码长度减去奇数链码值数量。 采用线段表计算轮廓的面积,只需要将所有线段长度求和即可。#include <math.h>#include <vector>typedef std::vector<int> ivChainCode;typedef std::vector<POINT> ptLineTable;// 轮廓长度// 1. ChainCode 链码表double ContourLength(ivChain 阅读全文
posted @ 2010-12-09 14:24 phata 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 图像轮廓缺陷修补 通过简单的二值化和边缘提取可以得到封闭的图像轮廓。但大多数边缘提取算子得到的轮廓都可能存在缺陷,即轮廓不封闭。如:Cannyl算子,通过调节两个阈值可以有效提取目标轮廓,但并不保证轮廓的封闭性,因此往往需要对轮廓进行进一步处理。可以使用闭运算等形态学操作来对轮廓进行处理,但作为像素点级别的形态学操作往往不能满足要求,如:两条轮廓线相距仅为一个像素,在进行闭运算操作时会使这两条轮廓粘连在一起。 图像轮廓修补仅需要对轮廓端点进行处理,而不是轮廓上的每一个点。对轮廓端点的定义为:对于轮廓上的任意一点,如果满足其8领域按顺时针或逆时针方向像素值变化次数为0次或者2次,... 阅读全文
posted @ 2010-12-09 14:18 phata 阅读(786) 评论(0) 推荐(0) 编辑
摘要: 图像轮廓凹陷修补 轮廓凸外形,可以认为是一种不带限制条件的简单凹陷修补。考虑更为普遍的情况,目标对象总体上呈凸外形,而局部存在轻微凹陷。对于这类目标对象,如果存在非常严重的凹陷,通常是由于某种干扰因素造成的部分轮廓未被检测出来所致。对于此类情况的轮廓修复,其实就是一种带条件的凹陷修补。 轮廓的凹陷程度可以用凹陷深度与凹陷跨度之比来描述。当凹陷程度不小于某个给定阈值时,对轮廓进行凹陷修补。#include "cxcore.h"#include "cv.h"#pragma comment(lib, "cxcore.lib")#pragma 阅读全文
posted @ 2010-12-09 14:17 phata 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 图像内轮廓填充 图像内轮廓填充通常称为孔洞填充,主要用于目标提取。不带任何条件的内轮廓填充,在目标密度很大时,可能导致错误填充。一种典型情况,当多个目标粘连,并且形成环状时,简单的内轮廓填充会将环状内部背景部分误认为目标空洞进行错误填充。这种错误对于目标分割和提取是非常致命的。 如果将内轮廓面积作为限制条件进行填充,就可以很好解决上述问题。通常内轮廓面积应该不大于目标的最大面积。#include "cxcore.h"#include "cv.h"#pragma comment(lib, "cxcore.lib")#pragma com 阅读全文
posted @ 2010-12-09 14:14 phata 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 获取目标对象中心 目标对象中心不等同于连通区域中心,一个连通区域内可能包括多个粘连目标对象。获取目标对象中心要比获取连通区域中心更为复杂,因为需要解决粘连部分的分割问题。 对二值图进行距离变换后,目标对象中心处的像素值具备局部最大特性。换而言之,在距离图像中的局部最大值中包含了全部的中心点。对局部最大值点的定义为:对于任何一个非零点,如果其像素值不小于其8领域的像素值,则该点为局部最大值点。 在局部最大值点中包含中心点和非中心点,如果能够确定中心点和非中心点的判别依据,那么就可以从中找出全部的中心点。在同一连通域中,任意两个局部最大值点之间距离小于某个阈值时,其中像素值较小的一个局部最大... 阅读全文
posted @ 2010-12-09 14:11 phata 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 计算灰度共生矩阵 共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。 灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息。设f(x,y)为一幅二维数字图象,其大小为M×N,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵为: P(i,j)=#{(x1,y1),(x2,y2)∈M×N|f(x1,y1)=i,f(x2,y2)=j} 其中#(x)表示集合x中的元素个数,显然P为Ng×Ng的矩阵,若(x1,y1)与(x2 阅读全文
posted @ 2010-12-09 14:07 phata 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 老外发现的opencv中cvtexture中的三个bug出处:http://tech.groups.yahoo.com/group/OpenCV/messages/18038?threaded=1&m=e&var=1&tidx=1Hello everybody,I ever delivered two articles about GLCM, asking about how to use it(exactly the meaning of the structure member and the meaning ofthe function parameters, s 阅读全文
posted @ 2010-12-08 16:56 phata 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 在DLL编程中, 如果调用模版类, 则可能出现类似以下的错误(以CString的使用为例):warningC4251:“CLogFile::m_strFileName”:class“ATL::CStringT<BaseType,StringTraits>”需要有dll接口由class“CLogFile”的客户端使用warning C4251: “CLogFile::m_strFileName”: class“ATL::CStringT <BaseType,StringTraits>”需要有 dll 接口由 class“CLogFile”的客户端使用解决方法如下:在调用该 阅读全文
posted @ 2010-12-02 21:29 phata 阅读(2614) 评论(0) 推荐(0) 编辑
摘要: 因为项目碰到了国际化的问题,自己整理了一下,主要是从tchar.h里面导出的包括类型和各类字符相关的处理函数,大部分都应该是用不到的。如果有想用自动化工具替换字符升级到unicode版本的,这个列表就比较全了。至于转换工具的替换规则,以后再发 GenericSBCSUNICODETCHARcharwchar_t_TEOFEOFWEOF_TINTintwint_t_TSCHARsigned charwchar_t_TUCHARunsigned charwchar_t_TXCHARcharwchar_t__T(x)xL__targv__argv__wargv__tcserror_strerr... 阅读全文
posted @ 2010-12-01 22:55 phata 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 由于公司开发工具版本不统一,有使用VS2005的,有VS2008的,有VS2010的,这样代码共享的时候就会存在问题。不可能把所有的版本的工具都安装上。所以最后的方式就是在代码中把其他几种的解决方案和工程文件都放一个,这样人家就可以选择相应的版本去打开工程。这种直接改的方式前提条件是程序都是编译成2.0版本的,且没有使用高版本的语言特性,否则用低版本打开的时候可能编译不过。解决方案Sln文件工程文件csproj文件VS2005Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 <P 阅读全文
posted @ 2010-11-29 09:55 phata 阅读(252) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/muzizongheng/archive/2010/05/07/5565170.aspx 阅读全文
posted @ 2010-11-28 10:11 phata 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量,可惜毕竟硬盘还没有廉价到免费的地步。那么,该怎么解决呢?其实可以关闭它。方法:Tools->Options->Text Editor->C/C++->Advanced->Disable Database,设置为True但是这样的办法会产生另外的一些问题,可能会导致其他的一些功能不能使用。另外一种解决方法是:Tools->Options->Text Edit 阅读全文
posted @ 2010-11-26 11:14 phata 阅读(139) 评论(0) 推荐(0) 编辑