暑期开发过程中的一些经验记录

Jeremy Lin

一、GDI+设置

这个不算是什么经验,在学校里面主要应用Opencv,基本没用过GDI+,到公司后才发现需要用到它。这里记录一下GDI+的配置过程,好让以后参考。

(1)在项目属性——>链接器——附加依赖项   添加  gdiplus.lib

(2)在stdfx.h中添加

#include "gdiplus.h"
using namespace Gdiplus;

(3)为XXXApp类添加两个成员变量

GdiplusStartupInput m_Gdistart;
ULONG_PTR m_GdiplusToken;

(4)在XXXApp中函数InitInstance()添加

GdiplusStartup(&m_GdiplusToken, &m_Gdistart, NULL);

(5)在XXXApp中ExitInstance()添加

GdiplusShutdown(m_GdiplusToken);


二、调试经验

当利用VS2010定位出new出现泄漏后,应该在下方(不一定是当前块内)该new变量不使用后delete;


今天遇到一个问题:发现delete后出现错误,原因是这个new的空间赋值给其他变量,因此delete这个变量之后就会出错。


三、free和delete如何知道需要释放的内存大小

在利用malloc或new分配内存空间的时候,实际分配的空间会比程序员申请的空间大。实际分配的内存空间前面有一部分用于保存所分配内存的大小、校验等信息。


free和delete

(1)delete释放空间的时候会调用相应对象的析构函数,new在分配空间的时候同时会调用对象的构造函数,对对象进行初始化,使用malloc则只分配内存;

(2)调用free之前需要检查需要释放的指针是否为空,使用delete则不用检查;

(3)free和delete不能混用。


C++中delete和delete[]的区别

(1)在基本数据类型的对象没有析构函数,new一个数组空间后,用delete和delete[]都可以;

(2)但对于类对象数据类型,只能用delete[];

Ref:http://www.cnblogs.com/charley_yang/archive/2010/12/08/1899982.html


四、Linux下调试入门

之前对Linux真的是一点儿也不熟悉啊,现在在学校需要苦补。

(1)Python在Linux下的调试工具winpdb,部分命令

bp   在某个地址下断点

bl    列出已存在的断点信息

bc   在系统中移除先前设置的断点

(2)在gdb中调试Python

gdb python

break 函数名

run 

l   显示当前代码

n  下一步

s  跟进函数

print 输出打印内容


gdb打印string的值

print stringname.c_str()


五、远程FTP登录Ubuntu系统

ftp://usrname:[email protected]


5.7-9.5 MT

本文地址:http://blog.csdn.net/linj_m/article/details/39322911

更多资源 请关注 博客 LinJM-机器视觉 微博:林建民-机器视觉


你可能感兴趣的:(经验,开发调试,LinJM)