摘要:VS2005调试技巧集合http://blog.csdn.net/rainylin/archive/2007/09/06/1775125.aspx下面有从浅入深的6个问题,您可以尝试回答一下一个如下的语句for (int i = 0; i 0且f(x2)0,则函数的根就在区间x3和x2之间,如果f(x3)0;如果你把main函数里所有的操作都注释掉,那么 程序什么都不做,就不可能有bug,那就好比是f(x2)不可省略): >Debug.Print a + bMSDN参考:ms-help://MS.MSDNQTR.v90.en/dv_vscmds/html/48711628-1909-47
阅读全文
01 2014 档案
摘要:由于看了一下,比较好理解,暂时先放到这里,待有空再翻译。只是在每节后大致介绍一下讲的内容。感觉写的比较全,无论从消息的原理还是从MFC操作上来说,值得一看,我也在此做个收藏。(一)说明:以下首先对消息进行介绍,然后在消息处理中,使用类向导创建消息循环,这个操作是在vc6.0(或者之下版本)操作的。IntroductionPerhaps one of the most important means of communication in windows is Messages. The traditional program starts at yourmain()function, move
阅读全文
摘要:关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇《高质量C++/C编程指南》的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章。常见的给对象赋值方式有构造函数,拷贝构造函数,赋值运算符这三种方法,如下代码演示了这几种常见的方法。Aa1;Aa2(a1);Aa3 = a1;a3 = a2;如果不手动写代码,C++编译器默认提供了构造函数,拷贝构造函数,赋值运算符的这三种方法的默认实现。默认构造函数没有参数,它什么也不做,程序员如果要实现手动构造的话则需要编写相应的重载版本。前面代码的第一行就是通过默认构造函数来创建一个对象,一般也不会和其它几种构造方式混
阅读全文
摘要:Matlab GUI编程总结代码示例:http://download.csdn.net/detail/nuptboyzhb/44742771.创建及初始化界面(Figure)SystemFrameHandle=figure(1);%创建一个窗口clfresetset(gcf,'name','CSplatform NUPT','numbertitle','off',...'unit','normalized','position',[0.02,0.1,0.92,0.82],...
阅读全文
摘要:VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异一直用VC++6.0,对VS2005不太了解,下面简单的熟悉一下VS2005的一下功能,总结一下VS2005在编写MFC时候的应用。1.菜单项:和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项。只是‘属性’,陈列的方式不同,VS2005陈列在右下角;在VC6.0中,我们对菜单项建立类向导,而在VS2005中,点右键,选择的是:‘添加事件处理程序’,然后再对话框里选择相应的消息类型,在类列表中选择要添加的哪个类中。点击‘添加编辑’按钮即可。2.对话框:和VC6.0一样,也是找到资源视图,点击menu资源
阅读全文
摘要:1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。动态链接库的分类:Visual C++支持三种DLL,它们分别是:(1)Non-MFC DLL(非MF
阅读全文
摘要:WinExecTheWinExecfunction runs the specified application.NoteThis function is provided only for compatibility with 16-bit Windows. Applications should use theCreateProcessfunction.UINT WinExec( LPCSTR lpCmdLine, // 可执行程序的路径,如"c:\\a.exe" UINT uCmdShow // 启动方式);ParameterslpCmdLine [in] Point
阅读全文
摘要:使窗口设置为最大化,最顶层int cxScreen,cyScreen;cxScreen=GetSystemMetrics(SM_CXSCREEN);//获得屏幕的宽度cyScreen=GetSystemMetrics(SM_CYSCREEN);//获得屏幕的高度 SetWindowPos(&wndTopMost,0,0,cxScreen,cyScreen,SWP_SHOWWINDOW);//设置窗口为最顶层设置窗口为最顶层,不可移动和改变尺寸AfxGetMainWnd()->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE
阅读全文
摘要:对话框的控件与其对应类的对象相关联:(两种方法)(1) 通过CWnd::DoDataExchange函数进行关联; 用VC++6.0的MFC ClassWizard中的Member Variables页面的Add Variable关联一个变量 然后在程序的DoDataExchange函数中会有DDX_XXXXX函数关联;该方法非常通用;比如一个CEdit控件,既可以关联一个CEdit对象,也可以关联int,CString等类型的变量;(2) 用一下函数进行关联(与其对应的类的对象关联)主要应用如下函数:CWnd* GetDlgItem( intnID) const;nID为资源的ID号,当然,
阅读全文
摘要:Mfc消息的响应机制Mfc中有很多资源,如图标资源,菜单资源,工具栏资源等等;那么,资源是如何进行消息响应和消息映射的呢?它们的流程是:某种资源——对应的ID号——消息映射——响应函数的声明与实现下面我们以工具栏的资源响应为例:(多文档的应用程序)1. 在工具栏资源增加一个图标(随便画一下),双击它,设置它的资源ID为:ID_MYICON2. 在View类的.cpp文件中添加消息映射;找到BEGIN_MESSAGE_MAP()与END_MESSAGE_MAP()之间的代码,添加消息映射语句ON_COMMAND(ID_MYICON,OnMyicon)其中,第一个参数是资源的ID号;第二个为消息响
阅读全文
摘要:一、MFC允许对象在程序运行的整个过程中持久化的串行化机制(1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程。(2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的状态。(3)MFC支持CObject类中的串行化,所以,所有继承于CObject的类可以利用CObject的串行化协议。(4)串行化的基本思想: a、对象必须能将其当前状态写入到持久化存储媒介中,通常用其成员变量实现。 b、对象可以通过读或反序列化从存储媒介中重新构造对象的状态。 c、串行化处理所有对象指针的细节,以及序列化对象时对对象的循环引用。 d、关键点是对象自己负责读和写其本身的状态,所以
阅读全文
摘要:MFC工具栏控件 创建工具栏步骤: (1)在Resource View中插入新toolbar (2)在toolbar上双击增加按钮,更改ID为ID_BUTTON,编译后在resource.h中即可看到 #define ID_BUTTON132771 (3)在框架类中添加保护的成员变量 CToolBar m_MyToolBar; (4)在框架类的OnCreate中用CreateEx创建工具栏控件(设置属性),加载工具栏资源 代码如下: if (!m_MyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEF...
阅读全文
摘要:CArray及其派生类1.简介:访问方法及效率和普通的数组一样,比普通数组强大的功能是可以改变数组的大小。Array采用队列方式存储数据,因而其内部数据元素是以物理方式顺序排列的,所以检索、顺序执行GetAt()等函数的速度是相当快的。但是由于每次队列长度变化后,数据都要重新申请内存、拷贝内存、释放内存,Insert/Add/RemoveAt()的速度都很慢。特点:通过索引(数组下标)访问的速度很快,但是插入删除操作很慢,因为插入删除操作时,是需要移动元素的。访问方法:通过索引访问,普通的数组怎么用,它就可以怎么用。2. MFC数组类CArray的使用的操作详解MFC的数组类支持的数组类似于常
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/4219669源代码:1.插入一个对话框的资源,删除默认控件,并为对话框创建一个类,命名为ClyricDlg;2.在对话框的头文件中添加GDI+相关的头文件和动态库#define UNICODE#ifndef ULONG_PTR#define ULONG_PTR unsigned long*#endif#include "GDIPlus\\Includes\\GdiPlus.h" ////Modify your pathusing namespace Gdiplus;#pragma
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/4221531CSplitterWnd类CSplitterWnd类提供一个分隔器窗口的功能,分隔器窗口是一个包含有多个窗格的窗口。窗格通常是应用程序特定的由CView派生的对象,但它也可以是具有适当子窗口ID的任何CWnd对象。一个CSplitterWnd对象通常被嵌入CFrameWnd或CMDIChildWnd父对象。你应按如下步骤创建一个CSplitterWnd对象:1.在父框架中嵌入一个CSplitterWnd成员变量。2.重载父框架的CFrameWnd::OnCreateClient成员函数。
阅读全文
摘要:忙里偷闲,把前一段时间做的一个小项目总结一下。源代码:http://download.csdn.net/detail/nuptboyzhb/4333353功能简介:1.插入图形:直线、矩形、圆形、椭圆、多边形、箭头、菱形2.插入图片:支持bmp图片3.插入文字4.编辑:支持图形的剪切、复制和粘贴功能;5.支持项目的保存和打开;特别说明:对bmp格式的图片,本项目用CDib类来管理,方便对bmp图片的图像处理算法的开发;另外:对于项目的保存和打开,体现了类的串行化和数组的管理方式。其中,对CDib类的串行化,非常有参考价值;该项目这种多态性+STL+串行化的管理方式,易于拓展。同时‘文档+视图’
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961701哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多....为画图工具添加工具栏Ø 首先认识一下工具栏的操作。1.打开资源->Toolbar2.如何查看每个图标的属性?查看每个图标属性,不是按右键,而是左键双击图片,即可看到,如:我们双击打开图标,得到如下属性框:从上图我们可以知道‘打开’图标的资源ID是:ID_FILE_NEW;这个ID号恰好和菜单项中的‘文件’->‘打开’菜单项具有相同的资源ID。因此,当我们按工具栏的‘打开
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961696输入文字l对话框1.插入,资源,选择对话框资源2.编辑对话框如下:设置每一个控件的属性。3.双击对话框,建立对话框的类,命名为:TexTSetDlg4.给对话框类增加公有成员变量如下:int m_colorR;int m_colorG;int m_colorB;double dlg_hscale;double dlg_vscale;double dlg_shear;int dlg_thick;CString str_text;5.在对话框的构造函数中,初始化成员变量。6.在数据交换函数中
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961698Alpha融合菜单项1. 增加alpha融合菜单项,修改相应的属性,建立类向导,编辑消息处理函数。2. 在消息处理函数中添加如下代码void CCVMFCView::OnAlphaMix(){//TODO: Add your command handler code here//TODO: Add your command handler code hereIplImage*src1, *src2;CStringcsAVI="src1 Files(lena.bmp)|*.bmp
阅读全文
摘要:源代码地址:http://download.csdn.net/detail/nuptboyzhb/39616901.增加‘椭圆’菜单项,设置属性,添加类向导;2.编辑消息处理函数,设置画图变量标识my_draw_flag为5,并读取对话框里的数据。3.修改OnMouseMove消息处理函数。3.1增加变量CvSizeCvSize EllipseSize;3.2case 5的编程: case 5: EllipseSize.width=abs(my_cvpoint1.x-iner_point.x);EllipseSize.height=abs(my_cvpoint1.y-iner_point.y)
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961688l 对话框1.“插入”->“资源”->“对话框”2.对话框属性如下:双击对话框,建立对话框类。取名:LineParameter3.在LineParameter.h头文件中添加#include "resource.h",否则:会报错:IDD_DIALOG4未定义4.为LineParameter类增加如下成员变量: int m_colorR; int m_colorG; int m_colorB; int m_PenWidth;5.在构造函数中,初始化变量:L
阅读全文
摘要:源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685画图工具1. 画直线Ø 增加‘直线’菜单项,建立类向导;Ø 对CXXXXXXView类增加成员变量my_draw_flag.并在构造函数中初始化为0Ø 在‘直线’菜单项处理函数中,将my_draw_flag=1;表示画直线Ø 增加window消息处理,WM_LBUTTONDOWN 和WM_MOUSEMOVE和WM_LBUTTONUPØ 增加成员变量在构造函数里初始化为0;增加int型成员变量OnLButtonDownRunFlag,O
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961677Ø 添加全屏截图菜单项,菜单项的属性如下;Ø 为该菜单项建立类向导。编辑消息处理函数如下voidCCVMFCView::OnPrintscreen(){ CRect rect; //HBITMAP hMap; rect.left = 0; rect.top = 0; rect.right =GetSystemMetrics(SM_CXSCREEN); rect.bottom =GetSystemMetrics(SM_CYSCREEN); //-------------
阅读全文
摘要:源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674写视频文件Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>写视频文件Ø 菜单项设置如下Ø 建立类向导Ø编辑代码voidCCVMFCView::OnMyWriteVedio(){ // TODO: Add your command handler codehereCStringcsAVI="AVI Files(*.avi)|*.avi|"; CStringcsFilter=csAVI;
阅读全文
摘要:源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961668版本1.0.x新增内容视频运动检测Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>视频运动检测Ø 菜单项设置如下:Ø 建立类向导Ø编辑代码voidCCVMFCView::OnMyTestSport(){ // TODO: Add your command handler codehere //Alt+F8 整理代码 CvCapture* capture; capture = cvCreateCamera
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/3961643版本1.0.3新增内容打开摄像头Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>打开摄像头(c)Ø 菜单项设置如下:Ø 建立类向导Ø编辑代码void CCVMFCView::OnMyOpenCamera(){ // TODO: Add your command handler code here //Alt+F8 整理代码 int i=1;//截图个数 CvCapture* capture; CString
阅读全文
摘要:源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642版本1.0.2新增内容Ø 全局变量和函数的添加:在CVMFCview.cpp文件中增加全局变量和全局函数//-----------------全局变量和函数---------------------------------------int g_slider_position=0;CvCapture *g_capture;void onTrackbarSlide(int pos){ cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS
阅读全文
摘要:资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639版本1.0.1新增内容Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>播放AVI视频。Ø 为’ 播放AVI视频’菜单项设置属性如下:Ø 为上述菜单项建立类向导,设置如下:Ø 编辑代码:代码具体如下void CCVMFCView::OnPlAYAVITEST(){ // TODO: Add your command handler code here //郑海波 2011年12月9日 //参考:learn
阅读全文
摘要:源代码下载:http://download.csdn.net/detail/nuptboyzhb/49871411.统计文本中汉字的频数,为后续的文本分类做基础。对于汉字的统计,需要判断读取的是否为汉字。源代码如下:[C++ code][cpp]view plaincopy /**@author:郑海波http://blog.csdn.net/NUPTboyZHB*参考:实验室小熊*注:有删改*/#pragmawarning(disable:4786)#include#include#include#include#include#include#includeusingnamespacest
阅读全文
摘要:写一篇小小的日志为了在VS2008中安装Qt的插件,花了我很多的时间。1.vs2008在win7中破解问题我的VS2008已经安装好了,不知道为何,当初没有破解,现在只剩下15天限制了。于是为了破解,先卸载了VS2008。在VS2008的安装包中把Setup/setup.sdb文件中的[Product Key],由“T2CRQGDKBVW7KJR8C6CKXMW3D”修改为“PYHYPWXB3BB2CCMV9DX9VDY8T”重新安装后,正常使用。2.VS2008与PPT和Excel的冲突安装好破解的VS2008后,PPT和Excel打开时,提示一个VS2008的安装对话框,点取消后,PPT和
阅读全文
摘要:---恢复内容开始---1.环境搭建:见上一篇博客整个项目的结构图:2.编写DetectFaceDemo.java,代码如下:[java]view plaincopy packagecom.njupt.zhb.test;importorg.opencv.core.Core;importorg.opencv.core.Mat;importorg.opencv.core.MatOfRect;importorg.opencv.core.Point;importorg.opencv.core.Rect;importorg.opencv.core.Scalar;importorg.opencv.high
阅读全文
摘要:1.首先下载OpenCV2.4.6,下载的时候,选择windows版的。然后安装2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\build\java 如下图所示注意:opencv-246.jar是需要在opencv的java类库,但是,真正的实现是opencv_java246.dll(X86和X64之分,关键看你的计算机是多少位的)3.建立一个Java项目4.新建一个Java类,代码如下:[java]view plaincopy packagecom.njupt.zhb.test;importorg.opencv.core.CvTy
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/41377841. 导入一个托盘图标的资源(.ico)格式;资源ID为IDI_ICON12. 在框架程序的初始化函数中,初始化一个托盘图标的一个结构体NOTIFYICONDATAnotifyicondata;//NOTIFYICONDATA结构notifyicondata.cbSize= sizeof(NOTIFYICONDATA);//为notifyicondata结构体分配空间 //为notifyicondata结构体各个参数赋值notifyicondata.hWnd= m_hWnd;//窗口的句
阅读全文
摘要:点击打开链接http://download.csdn.net/detail/nuptboyzhb/4228429c++调用matlab生成的Dll动态连接库实验平台: matlab 7.0(R2009a) VC++6.0思路:1. 设置matlab的编译器,使用外部的VC或者gcc等编译器。2. 编译m文件成dll3. 设置VC的Include路径和lib链接库的路径4. 编写C++调用dll步骤:1. 设置matlab的编译器在命令行窗口下,输入并执行如下命令:mex –setup在出现的编译器中,选择VC++6.0然后在输入命令:mbuild –setup 同样选择VC++6.02. 编写
阅读全文
摘要:OpenCV2.4.6与VS2010开发环境搭建由于很久没有用OpenCV了,之前用的是1.0版本和VC++6.0。现在已经到了VS2010+OpenCV2.4.6。安装使用之后,发现OpenCV的库名称都变了。于是记录一下这次的安装和配置步骤:1.下载OpenCV-2.4.6.0.exe,然后安装在D盘下,则如下目录是对我们编程十分有用的。D:\opencv\build\include;//头文件D:\opencv\build\include\opencv;//头文件D:\opencv\build\include\opencv2;//头文件D:\opencv\build\x86\vc10\l
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/4169959基于TCP/IP协议的网络编程定义变量——获得WINSOCK版本——加载WINSOCK库——初始化——创建套接字——设置套接字选项——关闭套接字——卸载WINSOCK库——释放所有资源整个程序架构分为两大部分,服务器端客户端。服务器SOCKET程序流程:socket()→bind()→listen→accept()→recv()/send()→closesocket()客户端:socket→bind()→connect()→send()/recv()→closesocket()编程举例:
阅读全文
摘要:源代码:http://download.csdn.net/detail/nuptboyzhb/4197151CHyperLink类,是由CStatic类派生出来,重载了CStatic类的如下函数:public: virtual BOOL PreTranslateMessage(MSG* pMsg); virtual BOOL DestroyWindow(); protected: virtual void PreSubclassWindow();进行了如下消息响应的处理:afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); afx_msg BOO
阅读全文
摘要:有程序EXE和DLL,其中DLL中有1个函数用来显示对话框,被EXE调用。当EXE和DLL都为Release或Debug时,没有任何问题,但EXE为Release、DLL为Debug时,就会出错。该DLL是用VC提供的MFC Extension DLL,函数的代码如下:HINSTANCE hInstOld = AfxGetResourceHandle(); // 该句出错HINSTANCE hInstNew = GetModuleHandle("T01Test.dll");AfxSetResourceHandle(hInstNew);CHahaDlg dlg;dlg.DoM
阅读全文
摘要:现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32DLL和MFCDLL两个方面来分析并解决这个问题。1.Win32DLL在Win32DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义你自己的对话框回调函数处理对话框收到的消息。下面通过一个具体实例来学习如何在Win32DLL中使用对话框,可以按照以下步骤来完成这个例子:1)在VC菜单中File->Ne
阅读全文
摘要:最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记一、修改预编译头文件(stdafx.h)在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可以在一个MFC工程中复制过来 1 #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将为显式的 2 3 #include // MFC 核心组件和标准组件 4 #include // ...
阅读全文
摘要:今天写了一个DLL,DLL中用到的一个类里用到的MSXML的COM组件,所以在DLL中要包含afx.h头文件,也就不可避免的要用到MFC的类库了,但在编译时出现了错误:mfcs42d.lib(dllmodul.obj) : error LNK2005:_DllMain@12already defined in NetDriverConfig.obj,在http://topic.csdn.net/t/20010911/10/281452.html处的贴子里找到了以下回答,试了一个原来是文件里定义的对象与mfcs42d.lib有冲突,加了命名空间后问题解决。还不知道DLL能不能使用,明天试一下再说
阅读全文