摘要:罗索客 发布于 2006-11-28 21:53点击:3941次来自:原文: http://yuantao82.spaces.live.com/Blog/cns!8FC0A772D812A22F!139.entry?owner=1 #ifndef _MEMDC_H_ #define _MEMDC_H...
阅读全文
04 2014 档案
摘要:jackyhwei 发布于 2010-01-01 12:02点击:3218次来自:CSDN.NET一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB等等。TAG:YUVYUV转RGBRGBBMP转JPG文字叠加/****************...
阅读全文
摘要:罗索客 发布于 2006-11-17 16:47点击:3971次来自:1.将jpg转为bmp格式 2.在bmp文件上写上所需文字 3.将写入文字的bmp文件重新转为jpg格式 http://dev.csdn.net/develop/article/22/22948.shtm 2步的部分代码 CBit...
阅读全文
摘要:落鹤生 发布于 2011-10-21 09:12点击:344次来自:blog.csdn.net/mengaim_cn几种用GDI画图的方法介绍。TAG:GDI法1:这个方法其实用的是一本经典vc图像处理的书上的有关读取位图的函数库,当没有这个函数库时,就没有太多的实用价值。这种方法直接用的是读取和显...
阅读全文
摘要:jackyhwei 发布于 2011-10-13 10:55点击:1080次来自:blog.csdn.net/weiquboBOOL StretchBlt( int x, //指定目的矩形区域左上角的X坐标 int y, //指定目的矩形区域左上角的Y坐标 int nWidth, //指定目的矩形区...
阅读全文
摘要:CImage封装了DIB(设备无关位图)的功能,因而可以让我们能够处理每个位图像素。这里介绍GDI+和CImage的一般使用方法和技巧。TAG:GDICImage后处理我们知道,VisualC++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内...
阅读全文
摘要:来自:#include "DDraw.h"class CDDraw{public:void CleanUp();void DrawDIB(BITMAPINFOHEADER* pBI,char* pData,RECT*rt);BOOL Init(HWND hWnd,int nWidth,int nHe...
阅读全文
摘要:锐化(sharpening)和平滑恰恰相反,它是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波(high passfilter)。锐化处理在增强图象边缘的同时增加了图象的噪声。常用的锐化模板是拉普拉斯(Laplacian)模板(见(3.4)式),又是个数学家的名字,可见学好数学,走遍天下都不...
阅读全文
摘要:假设放大因子为ratio,(为了避免新图过大或过小,我们在程序中限制0.25≤ratio≤4),缩放(zoom)的变换矩阵很简单:(2.13)缩放变换的源代码如下,因为和转置的那段程序很类似,程序中的注释就简单一些。[cpp]view plaincopy/***函数名:zoom*参数:ratio--...
阅读全文
摘要:第一种方法:高斯模版以下文字内容copy于>,code为自己实现,是win32控制台程序。先举个例子说明一下什么是平滑(smoothing),如下面两幅图所示:可以看到,图3.2比图3.1柔和一些(也模糊一些)。是不是觉得很神奇?其实实现起来很简单。我们将原图中的每一点的灰度和它周围八个点的灰度相加...
阅读全文
摘要:以下文字内容copy于>,code为自己实现,是win32控制台程序。镜象(mirror)分水平镜象和垂直镜象两种。图2.2的水平镜象和垂直镜象分别如图2.13和图2.14所示图2.13 图2.2的水平镜象图2.14 图2.2的垂直镜象镜象的变换矩阵很简单。设原图宽为w,高为h,变换后,图的宽和高不...
阅读全文
摘要:转置(transpose)是指将x,y坐标对换,图2.2的转置如图2.15所示。图2.2图2.15 图2.2的转置要注意的是,转置和旋转900是有区别的,不信你可以试试:怎么旋转,图2.2也转不出图2.15来。另外,转置后图的宽高对换了。转置的变换矩阵很简单:(2.12)镜象变换的源代码如下,因为和...
阅读全文
摘要:以下文本内容来自http://zhidao.baidu.com/question/152910968.html中的部分内容把RGB值转换为灰度值的公式:Gray := Trunc(0.3 * Red + 0.59 * Green + 0.11 * Blue);//这句用的是浮点运算在图像处理中,速度...
阅读全文
摘要:以下文字内容copy于>,code为自己实现,是win32控制台程序。旋转(rotation)有一个绕着什么转的问题,通常的做法是以图象的中心为圆心旋转,举个例子,图2.7旋转30度(顺时针方向)后如图2.8所示:可以看出,旋转后图象变大了。另一种做法是不让图象变大,转出的部分被裁剪掉。如图2.9所...
阅读全文
摘要:以下文字内容copy于>,code为自己实现,是win32控制台程序。2.1 平移平移(translation)变换大概是几何变换中最简单的一种了。如图2.1所示,初始坐标为(x0,y0)的点经过平移(tx,ty)(以向右,向下为正方向)后,坐标变为(x1,y1)。这两点之间的关系是x1=x0+tx...
阅读全文
摘要:文本内容转载自《数字图像处理编程入门》,代码为自己实现1.1图和调色板的概念如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个重要因素是它可视化的漂亮界面。那么Windows是如何显示图象的呢?这就要谈到位图(bitmap)。我们知道,普通的...
阅读全文
摘要:在前文中已经讨论了如何实现界面绘制双缓存的问题,前文网址如下:http://www.2cto.com/kf/201111/112429.html双缓存的主要思路是:先把图形绘制到内存DC中,然后再把内存DC中的所有图形一次性的复制到屏幕DC中。在前文的实现示例中,我们把直接往DC中绘制图形的函数封装...
阅读全文
摘要:// showpicDlg.cpp : 实现文件//#include "stdafx.h"#include "showpic.h"#include "showpicDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAbo...
阅读全文
摘要:目 录一. 视频捕获快速入门二.基本的捕获设置1.设置捕获速度:2.设置终止捕获3.捕获的时间限制三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将一个捕获窗口连接至捕获设备3. 父窗口与子窗口的交互 4.捕获窗口的状态四.视频捕获驱动和音频驱动 1.视频捕获驱动的性能:2.视频对话框: 3...
阅读全文
摘要:音频操作所需头文件和链接库#include#include#pragmacomment(lib,"winmm.lib") 由于音频采集过程是一个持续过程,所以建议为它们各自分配一个线程,而使用MFC的 CWinThread 类是一个不错的选择,笔者就是利用CWinThread类将这两个功能封装成了两...
阅读全文
摘要:引言经过几天的努力终于将VFW视频采集与显示功能完整实现了,不得不说网上对这方面完整的详细讲解文章是在太少了。所以就要本人来好好总结一下让后来者不再像我一样折腾好久。在本文中我将详细讲解VFW视频采集过程的实现,以及采集后视频的显示方法。VFW简介 虽然这是篇技术博文,但是我觉得用一个东西,那么关于...
阅读全文
摘要:在VC中使用WebBrowser控件的两方法黄森堂(vcmfc)著ClassWizard方式:1.创建包装类:View->ClassWizard->Add Class->Form a Type Library->C:\winnt\system32\shdocvw.dll->只选择IWebBrowse...
阅读全文
摘要:[cpp]view plaincopyvoidCSTest1View::OnDraw(CDC*pDC){CSTest1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereCRectrcClient;...
阅读全文
摘要:C语言编写的bmp读写程序 建议先把bmp的数据存储格式了解下[cpp]view plaincopy#include"Windows.h"#include"stdio.h"#include"string.h"#include"malloc.h"unsignedchar*pBmpBuf;//读入图像数...
阅读全文
摘要:以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn--------------------------------------------------...
阅读全文
摘要:VC/MFC 当鼠标移到控件上时显示提示信息ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。一般用法步骤:添加CToolTipCtrl成员变量 m_tt。在父窗口中调用EnableToolTi...
阅读全文
摘要:::SetCursor(::LoadCursor (::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BMP_MOUSE)));void CMyListCtrl::OnItemchanged(NMHDR* pNMHDR, LRESULT* pRe...
阅读全文
摘要:[cpp]view plaincopy这里使用消息拦截的方法[cpp]view plaincopyBOOLPersonDlg::PreTranslateMessage(MSG*pMsg){if(GetDlgItem(IDC_EDIT_USER_ID)->m_hWnd==pMsg->hwnd||Get...
阅读全文
摘要:不用splitter控件 简单实现对mfc对话框的分割的方法直接贴上源代码主要部分吧这个是基于对话框的工程 进行对话框的分割实现只是相应了三个消息函数,看一下就会明白的我空间资源里边有现成的工程代码可以下载运行.cpp 文件[cpp]view plaincopy//spliteDlg.cpp:imp...
阅读全文
摘要:引言 工具条作为大多数标准的Windows应用程序的一个重要组成部分,使其成为促进人机界面友好的一个重要工具。通过工具条极大方便了用户对程序的操作,但是在由Microsoft Visual C++开发环境所创建的应用程序框架中的工具条只是一个简单的按钮的集合,在功能上也仅仅是起到了菜单快捷方式的作...
阅读全文
摘要:[cpp]view plaincopyBEGIN_MESSAGE_MAP(CTipListCtrl,CListCtrl)//{{AFX_MSG_MAP(CTipListCtrl)ON_WM_MOUSEMOVE()ON_WM_DESTROY()//}}AFX_MSG_MAPEND_MESSAGE_MA...
阅读全文
摘要:[cpp]view plaincopy打开按钮相应消息[cpp]view plaincopyvoidCLoadBmpDlg::OnBtnOpenBmp(){//TODO:Addyourcontrolnotificationhandlercodehere////选取图片文件[cpp]view plai...
阅读全文
摘要:[cpp]view plaincopy为树形控件添加弹出式菜单,并跟踪所选择的项[cpp]view plaincopy动态弹出式菜单[cpp]view plaincopy//获取当前右键的位置CPointpt;GetCursorPos(&pt);m_tree.ScreenToClient(&pt);...
阅读全文
摘要:在VC下显示JPEG、GIF格式图像的一种简便方法一、 引言 JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可。GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也...
阅读全文
摘要:vc基于对话框多线程编程实例——线程之间的通信实例:
阅读全文
摘要:1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改。 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息。 3 Java学习书推荐:《java编程思想》 4 在VC下执行DOS命令 a. system("md c:\\1...
阅读全文
摘要:VC获取指定文件夹路径flyfish 2010-3-5一 使用Shell函数1 获取应用程序的安装路径TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);AfxMessageBox(buf);2...
阅读全文
摘要:方法一、显示位图文件[cpp]view plaincopyHBITMAPhBitmap=(HBITMAP)LoadImage(NULL,_T(“xxx.bmp”),Image_Bitmap,0,0,Lr_CreateDibSection|Lr_DefaultSize|Lr_LoadFromFile)...
阅读全文
摘要:自定义形状图形,定义几个点围城的图形,然后进行描边和填充:[cpp]view plaincopyif(m_memDC.m_hDC!=NULL){CPointpoint[4];point[0].x=nLeft+(int)(0.1*m_nWidth);point[0].y=m_nYmargin;poin...
阅读全文
摘要:[cpp]view plaincopy#include#include"res/resource.h"LRESULTCALLBACKWinProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam);BOOLInitApp(HINSTANCEhInstance,...
阅读全文
摘要:[cpp]view plaincopy//Capture.hforclassCCapture#include#include#include#if!defined(CAPTURE_H_________)#defineCAPTURE_H_________//imagesize:160*120176*1...
阅读全文
摘要:[html]view plaincopy//win32摄像头捕获系统vfw[html]view plaincopy//VideoRecord.h///用于定义一些资源ID[html]view plaincopy#include"resource.h"//#defineEXIT104#defineHE...
阅读全文
摘要:CreateThread、_beginthreadex和AfxBeginThread创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?参考了一些资料,写得都挺好的,这里做一些摘抄和整合。【参考1】CreateThread, AfxBeginThread,_beginthread, _...
阅读全文
摘要:在我们使用CreateWindow();像一般控件建Windows扩展控件的时候我们会发现控件没有创建成功这是因为我们没有对Windows扩展控件库进行初始化,这要我们使用InitCommonControlsEx();函数来对Windows扩展控件库进行初始化,代码如下:INITCOMMONCONT...
阅读全文
摘要:1》产生:[html]view plaincopy//HWNDCreateLB(HWNDparentWnd){HWNDhListBox=0;hListBox=CreateWindow("LISTBOX",NULL,WS_CHILD|WS_VSCROLL|WS_TABSTOP|LBS_STANDARD...
阅读全文
摘要:网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说.实例图片:首先建立一个标准的Win32 Application工程.选择a simple Win32 Application.然后建立我们的资源文件首先新建一个对话框资源,资源ID改为IDD_MAIN_DL...
阅读全文
摘要:[cpp]view plaincopy//////////////////////////////////////////////////////////////LRESULTListViewCustomDraw(HWNDhwnd,LPARAMlParam){LPNMHDRpnmh=(LPNMHDR...
阅读全文
摘要:本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。理论:树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"Sy...
阅读全文
摘要:MFC 用gdi绘制填充多边形区域这里的代码是实现一个三角形的绘制,并用刷子填充颜色 在OnPaint()函数里面运用的是给定的三角形的三个点,很多个点可以绘制多边形[cpp]view plaincopyCBrushbr(RGB(40,130,170));CRgnrgn;CPointarrpt[3]...
阅读全文
摘要:按钮自绘,将按钮区域分成三部分,左边、右边、中间都由贴图绘制,可用于手动进度条按钮,或者左右选择项按钮cpp代码部分:[cpp]view plaincopy//LRSkinButton.cpp:implementationfile//#include"stdafx.h"#include"CRedra...
阅读全文
摘要:内存从网上论坛摘抄整理思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端int len = pEdit->GetWindowTextLen...
阅读全文
摘要:vs2008中使用gdi+1.新建一个mfc工程2.在stdafx.h文件中加入以下几行语句:#include //#pragma comment(lib, "gdiplus.lib") //在工程属性中添加亦可using namespace Gdiplus; //使用GDI+的命名空间, 若不用...
阅读全文
摘要:在OnDraw(CDC* pDC) 中添加如下代码 CDC MemDC; //首先定义一个显示设备对象 CBitmap MemBitmap;//定义一个位图对象 //随后建立与屏幕显示兼容的内存显示设备 MemDC.CreateCompatibleDC(NULL); //这时还不能绘图,因为...
阅读全文
摘要:GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景...
阅读全文
摘要:#include#include/*GDI+startuptoken*/ULONG_PTRgdiplusStartupToken;/*DeclareWindowsprocedure*/LRESULTCALLBACKWindowProcedure(HWND,UINT,WPARAM,LPARAM);//...
阅读全文
摘要:#include #include /* GDI+ startup token */ULONG_PTR gdiplusStartupToken;/* Declare Windows procedure */LRESULT CALLBACK WindowProcedure (HWND, UINT, W...
阅读全文
摘要:方法一: 使用纯WIN32 DLL方法封装纯资源第一步,通过VS2005建立WIN32 DLL 空工程第二步,设置配置属性->链接器->高级->无入口点(是/NOENTRY)设置配置属性->C/C++->代码生成->运行时库(多线程/MT)第三步,加入图片资源并定义资源名称第四步,生成DLL,如Sk...
阅读全文
摘要:wav文件格式分析详解文章转载自:http://blog.csdn.net/BlueSoal/article/details/932395一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Forma...
阅读全文
摘要:网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说.实例图片:首先建立一个标准的Win32 Application工程.选择a simple Win32 Application.然后建立我们的资源文件首先新建一个对话框资源,资源ID改为IDD_MAIN_DL...
阅读全文
摘要:PNG文件结构分析 ---Png解析为了实现更高级的应用,我们必须充分挖掘PNG的潜力。PNG的文件结构根据PNG文件的定义来说,其文件头位置总是由位固定的字节来描述的:十进制数137 80 78 71 13 10 26 10十六进制数89 50 4E 47 0D 0A 1A 0A其中第一个字节0x...
阅读全文
摘要:vc/mfc获取rgb图像数据后动态显示及保存图片的方法该情况可用于视频通信中获取的位图数据回放显示或显示摄像头捕获的本地图像第一种方法#include加载 vfw32.lib 链接库[cpp]view plaincopy//------------------------------设置位图头结构...
阅读全文
摘要:转帖360dochttp://www.360doc.com/content/11/1117/09/8050095_165108638.shtmlFFMPEG解码流程1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文...
阅读全文
摘要:所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5。别忘记了顶贴哦。移植ffmpeg到windows,主要的修改是ffmpeg中VC6不支持C99语法,简单移植步骤如下:1:首先装好Linux、VMware和SD...
阅读全文
摘要:替换所有文件里的为即可。我用ffmpeg-0.6.3版测试时,好像mathimf.h文件和其他文件有冲突,需要修改源码。和qdm2.c文件中的 QDM2Complex *complex;声明相冲突,修改为QDM2Complex *complex1;即可。和g726.c文件中的static int16...
阅读全文
摘要:参考:http://www.cnblogs.com/mcodec/category/212418.html
阅读全文
摘要:http://www.cnblogs.com/mcodec/category/213433.html
阅读全文
摘要:ffmpeg/ffplay是当今多媒体领域的王者,很多很多的人想研究学习ffmpeg/ffplay,但苦于ffmpeg/ffplay庞大的代码量,令人望而生畏。为帮助更多的人研习ffmpeg/ffplay,在保持ffmpeg/ffplay体系架构的完整性的前提下,把ffmpeg/ffplay大规模的...
阅读全文
摘要:参考:http://blog.csdn.net/neicole/article/category/1057730
阅读全文
摘要:知识这个东西,真是知道的越多就不知道的越多,C/C++这塘水得多深啊,哈哈。看下面3个片段:1void fun(char a[100]) {2fprintf(stderr, "%s\n", a);3}45int main(void) {6char aa[200] = "abcdef";7fun(aa...
阅读全文
摘要:C++: 单例模式和缺陷实现一个单例模式1class Singleton {2private:3Singleton() { cout show(); 26return 0;27}编译执行上面的代码,输出如下:Singleton::constructorSingleton::show我们发现上面的输出...
阅读全文
摘要:看一个小例子:1#include 23using namespace std;45class A {6public:7A() { cout 23using namespace std;45class A {6public:7A() { cout << "A::A()" << endl; }8~A()...
阅读全文
摘要:像素格式像素格式(pixel format)像素色彩按分量的大小和排列。这种格式以每个像素所使用的总位数以及用于存储像素色彩的红、绿、蓝和 alpha 分量的位数指定。目录[hide]1像素格式2颜色通道3全部格式4格式笔记5WPF格式像素格式像素格式描述了像素数据存储所用的格式。定义了像素在内存中...
阅读全文
摘要:BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24...
阅读全文
摘要:ffmpeg的内部Video Buffer管理和传送机制本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程,ffmpeg的Videobuffer为内部管理,其流程大致为:注册处理函数->帧级释放->帧级申请->清空。1注册get_buffer()和release_buffer...
阅读全文
摘要:使用linux + ffmpeg + eclipse调试步骤OS : ubuntu 12.04Eclipse : 3.7.2为Eclipse安装cdt插件,使其支持c/c++导入ffmpeg项目File —-> Import —-> c / c++ —-> Existing Code as Make...
阅读全文
摘要:目录[hide]1抽象流程:2关键实现:2.1main()函数2.2decode_thread()读取文件信息和音频包2.3stream_component_open():设置音频参数和打开设备2.4audio_callback(): 回调函数,向SDL缓冲区填充数据2.5audio_decode_...
阅读全文
摘要:目录[hide]1ASF2FLV3H2644X2645ffm6AVI7rtsp8rtp9mms10mmshASFASF是(Advanced Streaming Format 高级串流格式)的缩写,是 Microsoft 为 Windows 98 所开发的串流多媒体文件格式。ASF是微软公司Windo...
阅读全文
摘要:OS:ubuntu 12.04ffmpeg:N-47141-g4063bb2x264:0.133.2334 a3ac64b目标:使用ffserver建立流媒体服务器使用ffmpeg对本地文件流化(x264编码器)使用ffplay播放目录[hide]1ffserver.conf配置2启动ffserve...
阅读全文
摘要:Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一 种可扩展的框架,使能够提供可控制的,按需传输实时数据,比如音频和视频文件。源数据可以包...
阅读全文
摘要:IOCP模型与网络编程一。前言: 在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢?嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找...
阅读全文
摘要:项目最近需要实现播放视频功能,这个在上家公司就做过。虽然跟之前的场景不一样,有以前的功底还是很快可以解决,事实也确实如此。在使用DShow处理完视频分割与合并后,继续使用DShow显示视频,很快即完成。然而在播放dvr录制的视频文件时,发现播放帧率不对,分析发现是dvr存储的视频文件不是按标准格式进...
阅读全文
摘要:眼见为实(1):C++基本概念在编译器中的实现对于C++对象模型,相信很多程序员都耳熟能详。 本文试图通过一个简单的例子演示一些C++基本概念在编译器中的实现,以期达到眼见为实的效果。本文的演示程序(http://www.fmddlmyy.cn/cpptest.zip)可以从我的个人主页下载。程序包...
阅读全文
摘要:Windows没有message queue累世的IPC内核对象,使得在在处理IPC时少了一种传递消息的手段。利用Windows的Naming Object可以实现一套简单的Inter-Thread消息队列。这里并不使用socket,因为一旦使用socket,就得负责port管理,很麻烦,另外在对外...
阅读全文
摘要:眼见为实(2):介绍Windows的窗口、消息、子类化和超类化这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词。为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和线程。子类化(Subclassing)和超类化(Superclassing)是伴随Windows窗口机...
阅读全文
摘要:1. 子类化改变一个已经存在的窗口实例的性质:消息处理与其他实例属性。在SDK编程范畴内,子类化就是改变一个窗口实例的窗口函数(通过GetWindowLong()和SetWindowLong()),子类化所要做的就是为某窗口实例编写新的窗口函数。其操作是在实例级别上进行的。在MFC中子类化的情况有所...
阅读全文
摘要:程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。 步骤:1) 打开WinDBG并将之Attach 到crash的程序进程2) 输入产生dump 文件的命令WinDBG产生dump 文件的命令是 .dum...
阅读全文
摘要:1、生成dmp的程序#include#pragmacomment(lib, "dbghelp.lib")//设置异常处理回调函数SetUnhandledExceptionFilter(UnhandledExceptionFilter);//异常处理代码//EXCEPTION_EXECUTE_HAND...
阅读全文
摘要:前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试。在开发人员测试出现的bug,我们可以直接在本地进行调试。如果测试人员测试出崩溃级别的bug,如果我们需要调试往往借助于vs提供的Remote Debugger工具进行远程调试(关于vs2010...
阅读全文
摘要:srv*C:/symbol*http://msdl.microsoft.com/download/symbols;D:\Desktop\CMS_Dumpsymck //检查pdblm //显示pdb//写入日志文件.logopen d:\output.txt.logclose.logfile!h...
阅读全文
摘要:首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的...
阅读全文
摘要:在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种...
阅读全文
摘要:一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能 创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。二 Windows为当前执...
阅读全文
摘要:多态的实现机制有两种,一是通过查找绝对位置表,二是查找名称表;两者各有优缺点,那么为什么mfc的消息映射采用了第二种方法,而不是c++使用的第一种呢?因为在mfc的gui类库是一个庞大的继承体系,而里面的每个类有很多成员函数(只说消息反映相关的成员函数啊),而且在派生类中,需要改写的也比较少(我用来...
阅读全文
摘要:前言由于工作需要,这几天学了一点MFC,在AFX里看到很多熟悉的东西,如类型信息,序列化,窗口封装和消息分派。几乎每个界面库都必须提供这些基础服务,但提供的手法却千差万别。MFC大量地借用了宏,映射表来实现,而VCL则更多的在语言级别上给与支持。这其实是很容易理解的,因为C++是一个标准,不会因某个...
阅读全文
摘要:DLL搜索路径和DLL劫持环境:XP SP3 VS2005作者:magictong 为什么要把DLL搜索路径(DLL ORDER)和DLL劫持(DLL Hajack)拿到一起讲呢?呵呵,其实没啥深意,仅仅是二者有因果关系而已。可以讲正是因为Windows系统下面DLL的搜索路径存在的漏洞才有了后来的...
阅读全文
摘要:1、 DLL的概念可以向程序提供一些函数、变量或类。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2...
阅读全文
摘要:CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen,strcpy,strstr等等,本文讨论的是在非mfc程序中使用CString类的方法,算是个引子...
阅读全文
摘要:参考链接:http://wenku.baidu.com/view/68fc340c79563c1ec5da714b.html
阅读全文
摘要:最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记一、修改预编译头文件(stdafx.h)在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可...
阅读全文
摘要:.如果程序是新建的对话框,要给其添加背景图片的步骤:1)加入消息函数:afx_msg void OnPaint();2)BEGIN_MESSAGE_MAP(QueryDlg, CDialog)ON_WM_PAINT()//add this END_MESSAGE_MAP()3)重写OnPaint函数...
阅读全文
摘要:参考链接:http://wenku.baidu.com/view/4e58744dcf84b9d528ea7a42.html
阅读全文
摘要:Windbg抓取程序崩溃的dmp文件的方法一、 简介windbg是在windows平台下,强大的用户态和内核态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump数据。我们使用windbg的主要用途是来抓取IE崩溃产生的dmp文件,然后可以查看是哪个模块导致崩溃,从而协助开发判断分析问题所在。二、 使用方法设置WinDbg抓取环境。WinDbg解压到任意盘符,例如C盘,使用下面的参数抓取Dump。C:\WinDbg\Windbg.exe –I运行该参数时,WinDb
阅读全文
摘要:NetRochttp://www.DbgTech.net引子Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)。我第一次接触是在三年前的一个内核驱动项目,由于进行了IDT中键盘鼠标中断的Hook,使用Softice调试时造成会造成影响,只得使用WinDbg通过串口进行双机调试。自此之后这个Windows平台下最为强大的调试工具一直是开发过程中的必备。这里我毫不掩饰的说"最强",可能很多通过逆向工作而接触调试的朋友不会认同,但是我相信随着对WinDbg了解的加深,以
阅读全文
摘要:现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙实现功能,又要忙准备好的界面素材。对界面实现文件配置化正是解决上面问题的好方法。这次我实现了使用XML文件配置工具栏。这里所谓配置就是工具栏的界面信息如工具栏标题、按钮图片、是否为分隔符都在XML文件保存,程序通过解析XML文件来获取工具栏信息来创建工具栏。这样一旦发现界面不合适可以随时修改配置文件,同时利于人员分工。具体的做法如下:1.在工程的输出目录下
阅读全文
摘要:C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。 reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换。 4种类型转换的格式,如: TYPE B = static_cast(TYPE)(a) cons...
阅读全文
摘要:我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一) 非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 ...
阅读全文
摘要:自从去年年底一次棘手的界面,开始研究用web做界面到现在大约1年,这一年间不是局限在实现层面,也并非一直研究这一个问题,有很多问题其实不是问题,只是自己没有想清楚或者思想没放开。对于一个界面开发人员,想必拉的对话框不少于100个,腻味不必说,光是对话框大小改变导致控件跟着变化都需要一番功夫,加上界面美观,界面的风格统一,界面的灵活多变......,头痛。在对话框里面加载位图,加载gif,超链接......,啊,没法控制了吧!在考虑远点,现在.net3.0技术已经完全打破应用和桌面的界限,我们的界面html资源完全可以放在一个web站点上,这样界面是完全动态的。其间写过2篇这方面的文章,基于vc
阅读全文
摘要:框架目标OneRing是一个跨平台的桌面应用框架。和Adobe AIR类似,它支持用html/js/css制作用户界面,与之不同的是,它的应用为本地程序,可以直接访问操作系统的数据。架构一个OneRing应用程序分为两个部分:框架部分和应用部分。框架部分框架部分为通用框架,各应用都一样。其提供各操作系统上的界面展现,为本地窗口内嵌一个WebKit浏览器,并提供一致的js接口让应用和操作系统功能进行交互。框架以运行时库的形式提供。框架以系统原生语言编写,提供其他语言的绑定。应用部分应用部分为一个web server,负责应用逻辑,用html/css描述界面,用js提供用户交互。运行流程应用启动时
阅读全文
摘要:初衷一直希望VC开发者能够方便的开发出细腻高品质的用户界面。我喜欢C++,选择的平台是Windows,所以大部分时间用VC。我自身不排斥其他技术或者开发语言或者开发工具,都去了解,了解的目的是想吸取好的思想补充VC开发方面的不足。从事界面开发方面的研究有5年了,学过很多,尝试过很多,失败过很多,但是没有气馁。感谢开源,尤其是谷歌的Chrome开源,使我再次提高。在论坛和代码网站,都能看到一些界面方面作品,有源码的也有纯欣赏的,大多数一看上去还不错,本地执行就会发现粗糙的地方,不细腻,难以商业化使用。总体来讲,国内很难看到好的界面方面的开源框架,优秀公司也以此为傲,不断引导界面潮流,使得其他一些
阅读全文
摘要:研究zlib库,想实现一个类似winrar功能的小东东,打开winrar界面看它的工具栏比较好看于是动手想做一个,当然资源也使用的是winrar附带的。下面是截图:真彩色(32位)32*32大图标工具栏我得工具栏风格smile风格代码下载感触:软件功能重要,软件的形象也重要。好的UI界面给优美的感觉,小软件要花哨,大软件要庄重。from:http://www.cppblog.com/wlwlxj/archive/2006/11/09/14897.html
阅读全文
摘要:InspectExelets you explore and diagnose problems with Win32 applications.It is integrated directly into the Windows® Explorer and adds as a set of extra pages in thePropertiessheet for the selected executable file. Look at the screen shots atthe bottom of this page to see examples of the inform
阅读全文
摘要:原文http://www.wtoutiao.com/a/120621.html底层工具“If you know how to use Process Monitor competently, people of both sexes will immediately find you more attractive.” – Scott HanselmanUltimate Boot CD 和 Ultimate Boot CD for Windows– 这些光盘是程序员修电脑时的必备工具,毕竟你可没那么多钱给给每个电脑坏掉的亲戚买新机,不是么?Hiren’s BootCD– 更先进也更复杂,Hir
阅读全文