- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 Release版CPU过高
如果Release版本CPU负担过大,可以检查代码中的主要循环,是否是过于频繁?考虑加个sleep让给别的线程一些CPU时间,Debug中有很多调试信息,而调试信息占用的是内存,占用CPU过高的线程循环因为调试信息去掉以后少了很多必要的sleep,当然CPU占有率会变高,适当添加一些Sleep即可。
2012-04-06 10:27:03
898
转载 sendmessage发送结构体
SendMessage可以随意发送结构体指针。PostMessage则必须注意结构体的生命周期。例如如下发送代码,使用PostMessage: struct _tag_aa { CString s1; char
2011-08-29 14:33:12
4124
转载 将类成员函数用做C回调函数
提出问题: 回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。分析原因: 普 通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可以访问C++ 的数据成员。这也可以理解为什么C
2011-06-17 20:35:00
705
原创 关于AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:AFX_MANAGE_STATE(AfxGetStaticModuleState()) 此语句用来正确地切换MFC模块状态。------------------------------------------------------
2011-06-03 18:13:00
919
原创 关于AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
动态链接到MFC的规则DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。但是,所有从DLL输出的函数应该以如下语句开始:AFX_MANAGE_STATE(AfxGetStaticModuleState()) 此语句用来正确地切换MFC模块状态。------------------------------------------------------
2011-06-03 18:13:00
699
转载 #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #endif
<br />情况1:<br />#ifdef _DEBUG<br />virtual void AssertValid() const; //assert(断言)valid(有效的,正确的)<br />virtual void Dump(CDumpContext& dc) const; //存储上下文<br />#endif<br /><br />这两个函数是调试用的,第一个函数检查可用性,即是否有效<br /
2011-05-31 20:29:00
760
转载 VC++2005运行Win32控制台程序时,为什么弹不出控制台窗口(无法看到运行结果)?
<br />VC++中如果是按F5运行的话,表示以调试方式运行,如果遇到断点可以停下来,也可以单步调试、监视变量等。程序结束时立即退出。如果是按Ctrl+F5运行的话,表示以独立的方式运行,即使遇到断点也不会停下来。但程序结束时会显示一个"按任意键继续"的东东,让你有足够的时间观察运行结果。 在Windows下的其他编译环境中,要达到类似效果的话,在程序的最后加上一句: system("pause"); 这个system函数包含在头文件stdlib.h(C++是cstdlib)里面。 方法1:使用CTRL
2011-04-08 09:43:00
4501
转载 VC++2005相关问题解决方案
<br />微软的VC++ 2005的强大功能让人体验了不一样的感觉,对于习惯了VC++6.0的程序员来说可能会感觉VC++2005总有一些莫名其妙的问题。 诚然,VC++2005是存在着那么一些问题。这让使用VC++2005的新手感觉很不适应,以至于不断有人抱怨。在论坛上也总有人问在VC++2005中编译好的程序在没有装VC的机子上不能运行的问题。大家的回复也是众说纷纭。反而让人更加迷茫。由此就有了这篇文章。<br />为了避免少走弯路,今天把VC++2005的一些相关问题汇集下来,并给出具体解决方案。<
2011-04-07 15:13:00
1432
转载 多输出显卡和双显卡
<br />一、视野轻松翻两倍:显卡双头输出应用 一般而言,现在不少显卡具备了两个输出接口(一个D-SUB+一个DVI或者双DVI),有的还同时具备了一个TVOUT接口。用户可以根据显示器的接口类型来进行连接。如果接口不符合就要用到转接头。<br /> 首先将主显示器连接到第一个D-Sub接口上,再将辅显示器连接到第二个D-Sub接口上(如图1),如果第二个接口为DV I-I接口,将DVI-I转D-Sub转接头连接到显卡的DVI-I接口上,然后将辅显示器连接到转接头上即可)。当然,主辅显示器是可以由用户
2011-04-07 13:31:00
20862
转载 VC++动态链接库(DLL)编程深入浅出(四)
<br />这是《VC++动态链接库(DLL)编程深入浅出》的第四部分,阅读本文前,请先阅读前三部分:(一)、(二)、(三)。<br /> MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic、CButton等类使之具备更强大的能力。<br /> 使用Visual C++向导生产
2011-04-06 09:42:00
825
转载 VC++动态链接库(DLL)编程深入浅出(三)
<br />第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。<br /><br /> 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正!<br /><br /><br />5. MFC规则DLL<br /><br />5.1 概述<br />
2011-04-06 09:40:00
552
转载 VC++动态链接库(DLL)编程深入浅出(二)
<br />上节给大家介绍了静态链接库与库的调试与查看(动态链接库(DLL)编程深入浅出(一)),本节主要介绍非MFC DLL。<br />4.非MFC DLL<br /><br />4.1一个简单的DLL<br /><br /> 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。<br /><br /> 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件)。注意不
2011-04-06 09:34:00
774
转载 VC++动态链接库(DLL)编程深入浅出(一)
<br />1.概论<br /><br /> 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。<br /> 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸
2011-04-05 19:10:00
937
1
转载 error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
<br />其实还可能出现其它类似的问题,如:<br />error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”<br />error C2039: “strcpy”: 不是“ATL::CStringT<BaseType,StringTraits>”的成员<br />但是程序在VC6下编译得很好,经过研究发现是设置上有所不同。在VC6中,默认使用MBCS编码,即多字节字符;而VC8、VC7默认的是Unicode编码,所以...<br />关于这两种
2011-04-03 16:11:00
11645
转载 程序的内存分配
<br />一、预备知识―程序的内存分配 <br /><br />一个由c/C++编译的程序占用的内存分为以下几个部分 <br /><br />1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 <br /><br />2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 <br /><br />3、全局区(静态区)(static)
2011-03-29 15:09:00
625
原创 送给写程序的你~!
<br />明天你是否会想起<br />昨天你写的程序<br />明天你是否还惦记<br />曾经爱编程的你<br />领导们都已想不起<br />曾经加班的你<br />我也是偶然看程序<br />才想起同事的你<br />谁聘了牛B烘烘的你<br />谁安慰天天加班的你<br />谁把你的设计做起<br />谁给你做的升级<br />你从前总是很小心<br />从不把离职的事提起<br />你也曾无意中说起<br />薪水实在太低<br />那时候屏幕总是在闪<br />日子总过得太慢<br />你总说
2011-03-15 21:03:00
626
原创 关于Intel(R) IPP函数库在BCB中的使用设置说明
<br />Intel(R) IPP是一款面向多核的扩展函数库,其中包含众多针对多媒体数据处理和通信应用高度优化的软件函数。Intel IPP针对大量的Intel Microprocessor (微处理器)进行优化,采用一套跨平台结构的通用API,使用者除了不需要担心平台兼容性的问题,更节省了开发成本以及研发时间,使用者可以轻轻松松移植原有应用程序。<br />Intel(R) IPP支持的应用目标平台:<br />●IA-32架构及兼容架构平台:英特尔®奔腾®III处理器或更新产品(400MHz或更高频率
2011-03-14 20:37:00
2779
转载 Intel IPP库
<br />IPP是个好东西,里面的函数精而全,希望大家好好利用。因为IPP目前很少中文资料,我们只能靠自己摸索。下面就简单说说IPP在VC2005下的基本使用方法。<br /> 假定你的IPP是安装在“D:/Intel/IPP”目录下。<br /> 首先是配置VC2005的环境。打开VC2005后,点击菜单栏的“工具--选项”,在左侧找到“项目和解决方案--VC++目录”,在“可执行文件”的目录中添加“D:/Intel/IPP/bin”,在“包含文件”的目录中添加“D:/Intel/IPP/inclu
2011-03-09 21:37:00
5403
原创 基于平面格式YUV422的图像缩放
<br />void __fastcall TForm1::N3202401Click(TObject *Sender)<br />{<br /> FILE *fp;<br /> fp = fopen("E://±àÂëÏîÄ¿//YUVË«ÏßÐԱ任//320&240YUV422.yuv", "rb");<br /> unsigned char *YUV=new unsigned char[320*240*2];<br /> fread(YUV
2011-03-08 19:00:00
3207
原创 YUV转RGB方法二
<br />bool CYuvToRgb::Yuv422ToRgb ()<br />{<br /> unsigned long col,row;<br /> double Y,U,V;<br /> double red,blue,green;<br /> for (row=0; row<m_Height; row++)<br /> {<br /> int idx=((m_Height-row-1)*3)*m_Width;<br /> int rowptr=row*m_Width;<br /> for
2011-03-05 17:06:00
845
转载 YUV转RGB
<br />void CColorSpaceConvector::YUV2RGB(BYTE * pDest, BYTE * pSrc, DWORD dwRGBBit, <br /> DWORD dwDestPitch, DWORD dwSrcPitch, <br /> int nHeight, UINT nWidth) <br />{ <br />UINT nLength = nWidth * ((dwRGB
2011-03-04 16:13:00
910
1
转载 RGB转YUV422,420
#include <stdio.h> #include <stdlib.h> #include <iostream.h> FILE *ifp, *ofp; int rgb_2_yuv422(FILE *ifp, FILE *ofp); int rgb_2_yuv420(FILE *ifp, FILE *ofp); int select_option(void);
2011-03-03 11:12:00
1753
原创 opencv1.1无法读视频文件的解决方法
<br />无法读视频大多是由于视频编码的原因,只要有支持的编解码器就可以解决这个问题。<br /><br />可以在OpenCV link里添加ffopencv.lib,这个库要和一个叫做 ffopencv110.dll 的动态连接库连接,才能使用它里面的函数 。这个 ffopencv110.dll 动态连接库要从yahoo group下载,也可以自己编译,不过要修改一些文件,比较麻烦。下载后,使用的时候放到project 的debug文件里就可以。<br /><br />还有一种方法,就是下载个ffds
2011-02-28 10:39:00
3651
转载 OPENCV版本的摄像机标定(张正友)
<br />摄像机的标定问题是机器视觉领域的入门问题,可以分为传统的摄像机定标方法和摄像机自定标方法。定标的方法有很多中常见的有:Tsai(传统)和张正友(介于传统和自定标)等,<br /> <br />摄像机成像模型和四个坐标系(通用原理)。<br /><br />摄像机模型采用经典的小孔模型,如图中Oc(光心),像面π表示的是视野平面,其到光心的距离为f(镜头焦距)。<br />四个坐标系分别为:世界坐标系(Ow),摄像机坐标系(Oc),图像物理坐标系(O1,单位mm),图像像素坐标系(O,位于视野平面
2011-02-28 10:34:00
5465
转载 基于OPENCV摄像机标定的源码
<br />这个是我在win32 平台下写的程序,测试完全通过:<br />不过要注意下面的问题:<br />(1)opencv库是1.0的,我在vc6.0的平台使用<br />(2)软件的设置要正确<br />(3)图片载入的时候,使用的是批处理文件(其实就是建一个txt文件,里面写的和dos下面的操作代码一样的输入)<br />(4)里面现在还有个问题没有解决:在得到角点坐标的时候,cvFindCornerSubPix里面的搜索区域还不明白<br />(05)下面是我在网上搜的别人的代:测试通过的:<b
2011-02-28 10:32:00
3408
转载 如何在C++ Builder中显示透明位图
<br />我们知道,GIF类型的图像格式支持透明显示,而BMP类型的图像格式不支持透明显示。在Microsoft照片编辑器中位图若以设置成透明色方式存贮,则提示出错。然而,在功能强大的C++ Builder中,不但能显示透明位图,而且可以说是一件轻易而举的事情。有了透明显示位图的技术,您就能制作出象图像合成等奇妙的效果来。透明位图与透明GIF图像相比有一个很大的优点,即:GIF图像格式最大支持256种颜色,位图却可以支持真彩色。在C++ Builder中显示透明位图有好几种方法: <br /><br />
2011-02-28 10:29:00
1672
原创 图像加噪(BCB)
<br />//产生随机噪声图像<br />void __fastcall TForm1::N5Click(TObject *Sender)<br />{<br /> int noisepoint;<br /> Graphics::TBitmap *pBitmap;<br /> pBitmap= new Graphics::TBitmap();<br /> pBitmap->Assign(Image1->Picture->Graphic);<br /> unsigne
2011-02-27 20:38:00
662
转载 BMP与IplImage相互转换
<br />下面的function 可以把 IplImage 转 Bitmap<br />//////////////////////////////////////////////////////////////////////////// <br />// - the IplImage "src" Image must have a IPL_DEPTH_8U depth // <br />// and 1 or 3 channels
2011-02-27 20:32:00
2574
转载 YUV测试序列下载地址
<br />1、http://www.tkn.tu-berlin.de/research/vid/(此网站已经移走,正在寻找。) <br /> CIF: Akiyo、Bridge (far) 、Bridge (close) 、Bus 、Container 、Coastguard 、Flower 、Football 、Foreman 、Hall 、Highway 、Mobile & Calendar 、Mother & Daughter 、News 、Paris 、Silent 、Stefan 、Temp
2011-02-27 20:12:00
15463
转载 YUV格式
<br />YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章。<br />对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有一个比较经典的解释,中文的大多是翻译这篇文章的。文章来源:http://msdn.microsoft.com/en-us
2011-02-27 20:01:00
1030
转载 双线性插值的图像缩放算法的研究与实现
<br />一、引言<br />数字图像处理的对象因其涉及到社会的各个领域,倍受到越来越多的关注,而图像缩放作为数字图像处理中的基本操作尤为重要,在社会的很多领域都需要对图像进行放大和缩小。利用VC++的MFC类库中的StretchBlt函数可以很容易的实现图像放大和缩小,但是当放大或缩小的比率比较大时就容易出现失真现象,因此必须进行改进。本文提出了一种双线性插值算法,用以改进图像的缩放质量。<br />二、空间变换<br /> 图像的空间变换,也称几何变换或几何运算,包括图像的平移、旋转、镜像变换、
2011-02-27 19:16:00
1020
基于C++Builder的运动目标检测
2011-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人