摘要: MapWindowPoints的百度解释:函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点。 函数原型:int MapWindowPoints(HWND hWndFrom, HWND hWndTo,LPPOINT lpPoints, UINT cPoints); 参数: hWndfrom:转换点所在窗口的句柄,如果此参数为NULL或HWND_DESETOP则假定这些点在屏幕坐标上。 hWndTo:转换到的窗口的句柄,如果此参数为NULL或HWND_DESKTOP,这些点被转换为屏幕坐标。 lpPoints:指向POINT结构数组的指针,此结构数... 阅读全文
posted @ 2013-12-01 15:21 xingrun 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟,但是在c/c++领域的发展并不顺畅,虽然很早就有人思考在C++中也加入GC的支持。现实世界就是这样的,作为一个c/c++程序员,内存泄漏是你心中永远的痛。不过好在现在有许多工具能够帮助我们验证内存 阅读全文
posted @ 2013-11-30 15:19 xingrun 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 浅谈C++内存泄漏及其检测工具http://wenku.baidu.com/link?url=1DGkOOvd_ITZyB8IHAwfhCOx2tfO6id8UfuyQkAMHZU6sasaAXzekgP-AxSMZzSMN3UzbVXjnAt8EUxFb2ki2_4C5gcetEOWGSNJ-O6OIcK 阅读全文
posted @ 2013-11-30 15:10 xingrun 阅读(163) 评论(0) 推荐(0) 编辑
摘要: _CrtDumpMemoryLeaks()的作用2007-03-22 10:11CrtDumpMemoryLeaks()就是显示当前的内存泄漏。 注意是“当前”, 也就是说当它执行时, 所有未销毁的对象均会报内存泄漏。 因此尽量让这条语句在程序的最后执行。它所反映的是检测到泄漏的地方。一般用在MFC中比较准确,在InitInstance里面调用_CrtDumpMemoryLeaks。C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员有了更广的发挥空间,也产生了代代相传的内存泄漏问题。对于新手来说,最常犯的错误就是new出一个对象而忘记释放,对于一般小应用程序来说,一 阅读全文
posted @ 2013-11-30 15:09 xingrun 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 内存泄露,C++通常是指new出来的内存没有delete掉。在你的代码里边,new了一块内存,然后马上就delete,自然就没有内存泄露了(呃……其实我也不确定啦,因为你用的是delete,而不是delete[])。而@Miao在评论里面说的,把x换成指针,在构造函数里new一块内存给它,10秒钟内系统就要卡死。如果没有在析构函数里面delete,自然,就会发生上一段所说的,new出来的内存没有delete掉,内存泄露啰!系统也就由此卡死。那么x换成指针类型后,析构函数里面也用了delete,是不是就不会发生内存泄露呢?不是的。因为“new MyClass[10]”的时候,MyClass的构造 阅读全文
posted @ 2013-11-30 15:08 xingrun 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 首先我们先来了解一下MFC中的CPtrArray类,他可以说是CObject类型指针对象的集合。通过intAdd(CObject*newElement);注意参数是一个指针类型)可以向集合中添加元素。首先我们定义一个CPtrArray类型的对象。CPtrArray pArray;//他是一个全局对象先设定一个举例的类类型。如:1234567891011classA{public:A(inti){a = i;}~A(){}public:inta;};现在我们需要在某个函数中要实现将一个A类型对象数据加入到一个CPtrArray对象中。此函数func1()如下:1234567voidfunc1() 阅读全文
posted @ 2013-11-30 15:00 xingrun 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 今天在程序的中有一段class Quackable : QuackObservable,结果一直出现error c2243:"类型转换" 转换存在,但无法访问。后来发现只要改成class Quackable : public QuackObservable 即可。c++默认的是private继承,无法进行转换,检查一下是否继承后面都有一个public 阅读全文
posted @ 2013-11-30 12:49 xingrun 阅读(577) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/gookings/item/2b7912ca8d5b3625a0b50aa2SetForegroundWindow 函数功能:该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。 函数原型:BOOL SetForegroundWindow() SetForegroundWindow()函数本身是不带参数的,具体激活某个窗口的方法可以用: pWnd->SetForegroundWindow();//这里的pWnd即所要激活窗口的句柄。 返回值:如果窗.. 阅读全文
posted @ 2013-11-28 16:32 xingrun 阅读(3915) 评论(0) 推荐(0) 编辑
摘要: 获取命令行的方法:1、GetCommandLine() 获取输入的所有信息,包括程序所在路径及参数2、AfxGetApp()->m_lpCmdLine 只包含参数一般情况下,获取到命令行后就可以针对命令行中的内容进行相应的处理了CObject└CCommandLineInfo类CCommandLineInfo用于分析启动应用时的命令行参数。MFC应用一般都会在它的应用对象中使用函数InitInstance创建这个类的一个本地实例。然后把该对象传给CWinApp::ParseCommandLine,ParseCommandLine又重复调用ParseParam填充CCommandLineI 阅读全文
posted @ 2013-11-27 21:01 xingrun 阅读(1704) 评论(0) 推荐(0) 编辑
摘要: 在MFC程序中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2方法一::GetCommandLine();将获取到"C:\test\app.exe" -1 -2方法二for(inti=0;im_lpCmdLine;将获取到-1 -2其他方法如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineInfo类。相关文章:http://blog.csdn.net/geeeeeeee/archive/2008/12/13/3510195.aspx 阅读全文
posted @ 2013-11-27 21:00 xingrun 阅读(531) 评论(0) 推荐(0) 编辑