![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
入门
zimingjushi
这个作者很懒,什么都没留下…
展开
-
在Dialog中使用Menu和Toolbar
本文适合初学者前言在用VC编程时,界面制作远不如Delphi、VB容易。我又常常用到基于Dialog编写应用程序。而在直接在Dialog使用Toolbar和Menu的资料很少。而我有机会可以总结一些经验,供大家分享,希望能得到指教。下载本文示例工程 大小:11.2K运行效果如下图 我们先建立一个基于Dialog 的程序,我给他起了个名字叫:DlgMenuToolbar。一、转载 2009-03-30 09:20:00 · 698 阅读 · 0 评论 -
c++中冒号(:)和双冒号(::)的用法
转载于:http://fengqing888.blog.163.com/blog/static/3301141620100623933512/1.冒号(:)用法(1)表示机构内位域的定义(即该变量占几个bit空间)typedef struct _XXX{ unsigned char a:4; unsigned char c;} ; XXX(2)构造函数后面的转载 2011-06-16 20:38:00 · 263320 阅读 · 8 评论 -
一个微软面试题--关于位结构体
写出下列程序在X86上的运行结果。 struct mybitfields { unsigned short a : 4; unsigned short b : 5; unsigned short c : 7; }test; void main(void) { int i; test.a=2; test.b=3; test.c=0; i=*((short *)&test); printf("%d转载 2011-06-16 20:43:00 · 2105 阅读 · 0 评论 -
数组与指针的艺术--深入探索c/c++数组与指针的奥秘
原帖http://topic.csdn.net/u/20091123/11/0c03d2e2-0655-4634-8287-0e2315d889fc.html 前言:http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855036.aspx第一章:数组与指针概念剖析 http://blog.csdn.net/supermegaboy/转载 2011-06-15 23:29:00 · 852 阅读 · 0 评论 -
《C陷阱与缺陷》理解函数声明:(*(void(*)())0)() 和signal函数声明
void (*signal(something))(int);理解函数声明有一次,一个程序员与我交谈一个问题。他当时正在编写一个独立运行于某种微处理器上的C程序。当计算机启动时,硬件将调用首地址为0位置的子例程。 为了模拟开机启动时的情形,我们必须设计出一个C语句,以显式调用该子例程。经过一段时间的思考,我们最后得到的语句如下: (*(void(*)())0)(转载 2011-06-19 16:28:00 · 1796 阅读 · 0 评论 -
APUE习题:以O_APPEND标志open的文件,lseek后读写问题
O_APPEND的含义是在每次写之前,都讲标志位移动到文件的末端。表面上读这句话可能会有误解。提出一个问题:当在O_APPEND打开后,然后用 lseek移动到其他的位置,然后再用write写,这个时候,请问你数据写到哪里去了?是在末端,还是lseek移动到得位置。答案是在末端。因为 O_APPEND打开后,是一个原子操作:移动到末端,写数据。这是O_APPEND打开的作用。中间的插入原创 2011-06-21 16:42:00 · 4836 阅读 · 0 评论 -
几种最基本的排序方法
随手写的。可能有错。//冒泡排序#include int main(){ int num[] = {1,4,2,6,5}; int length = sizeof(num)/sizeof(int); int i; int j; int temp; //交换的次数 int change_times=0; //外层循环一共执行 length-1次原创 2011-06-18 15:16:00 · 908 阅读 · 0 评论 -
《C陷阱与缺陷》理解函数声明:(*(void(*)())0)() 和signal函数声明
void (*signal(something))(int);理解函数声明有一次,一个程序员与我交谈一个问题。他当时正在编写一个独立运行于某种微处理器上的C程序。当计算机启动时,硬件将调用首地址为0位置的子例程。 为了模拟开机启动时的情形,我们必须设计出一个C语句,以显式调用该子例程。经过一段时间的思考,我们最后得到的语句如下: (*(void(*)())0)(转载 2011-06-19 00:41:00 · 1165 阅读 · 0 评论 -
【转载】关于static和extern的用法
一些基本概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开转载 2011-06-19 16:30:00 · 1176 阅读 · 0 评论 -
linux下c语言写的简单的贪吃蛇
基本算是第一次在linux下写程序,果然各种不习惯。 用的是emacs,都说是IDE中的神器,但是我还没用习惯,gdb调试也不怎么熟悉,linux下的c程序设计也只是看了个皮毛,所以虽然是个简单的小程序,也绝对比在windows下写多用了至少一倍的时间。虽然很想学好linux下c,但是无奈只能用课余时间看。 目前已知的不足: 目前已知的不足:1.没加注释,因为懒 而且编辑器输入法不习原创 2011-06-26 12:13:00 · 10608 阅读 · 5 评论 -
TQ2440驱动-hello world(入门,注意事项)
驱动开发使用的是tq2440的开发板,linux内核版本为linux-2.6.30.4。 开发平台: 虚拟机下UBUNTU,内核2.6.38.10 交叉编译编译器:天嵌公司提供的arm-linux-gcc 4.3.3 内核树:/opt/EmbedSky/linux-2.6.30.4目标平台: TQ2440,内核是ARM9 OS内核:配套光盘中的linux-2.6.原创 2011-06-28 20:32:00 · 2811 阅读 · 0 评论 -
sizeof,strlen总结比较
首先看一MSDN上如何对sizeof进行定义的: sizeof Operator sizeof expression The sizeof keyword gives the amount of storage, i转载 2011-01-03 18:55:00 · 605 阅读 · 0 评论 -
const用法详解
const用法详解面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法2. 必须初始化 const int i=5; //转载 2011-06-15 00:02:00 · 609 阅读 · 1 评论 -
内存泄露调试之 _CrtSetBreakAlloc
在用VS或者VC进行编程的过程中,经常会在编译器的输出窗口看到类似下面的内容:Detected memory leaks!Dumping objects ->{52} normal block at 0x006D2498, 512 bytes long. Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {51} normal b转载 2011-06-13 23:03:00 · 1070 阅读 · 0 评论 -
在对话框中加入工具条与 RepositionBars的调用
新建一个对话框IDD_DIALOG1,然后新建一个工具栏IDR_TOOLBAR1,要将上面的工具条插入到对话框当中的话,可以如下操作BOOL ExaDg_1::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here/////////////////产生转载 2009-03-30 09:25:00 · 1197 阅读 · 0 评论 -
CBitmap::LoadBitmap问题
BOOL LoadBitmap(LPCTSTR lpszResourceName)BOOL LoadBitmap(UNIT nIDResource)通过指定资源名称或者资源ID加载指定位图。但指定的资源要是程序导入的资源,不能直接以位图的路径和名字为参数。CBitmap::LoadBitmap()不能以文件形式打开,原因不知道,虽然提供了LPCTSTR lpszResourceName(主持人注:这个参数是DLL或EXE中的资源名,不是文件名),给出了另外的方法,也是常用的。请看下面的代码:转载 2010-10-15 19:35:00 · 5080 阅读 · 0 评论 -
MDI应用程序的构成
<br />本文来自编程入门网:http://www.bianceng.cn/Programming/vc/201003/16098_2.htm<br /> <br />本节解释一个典型的MDI应用程序的构成。<br />用AppWizard产生一个MDI工程t(无OLE等支持),AppWizard创建了一系列文件,构成了一个应用程序框架。这些文件分四类:头文件(.h),实现文件(.cpp),资源文件(.rc),模块定义文件(.def),等。<br />构成应用程序的对象<br />图1-1解释了该应用程序转载 2010-10-16 20:06:00 · 1244 阅读 · 0 评论 -
MFC Object和Windows Object的关系
<br />本文来自编程入门网:http://www.bianceng.cn/Programming/vc/201003/16099.htm<br /> <br /> <br />MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓MFC Object (MFC对象)是C转载 2010-10-16 20:20:00 · 568 阅读 · 0 评论 -
VS2010 中const char *转换为LPCWSTR的方法Unicode
http://chenet.blogbus.com/logs/28070247.html VS2010默认是Unicode的,在VC 6.0中编译成功的项目在VS2010中常会出现类型错误。 经常出现的错误是:不能从const char *转换为LPCWSTR如使用CreateDC("DISPLAY",NULL,NULL,NULL转载 2011-06-03 19:21:00 · 3989 阅读 · 0 评论 -
CString详解以及CString转换成char*
CString 型和 char* 类型的相互转化1.CString 转化成 char* 之一:强制类型转换为 LPCTSTR; 这是一种略微硬性的转换,有关“正确”的做法,人们在认识上还存在许多混乱,正确的使用方法有很多,但错误的使用方法可能与正确的使用方法一样多。 我们首先要了解 CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲原创 2011-06-03 19:23:00 · 999 阅读 · 0 评论 -
基于OPenCV和MFC的读图程序
一、基本设置(通用) 安装好opencv后并设置好环境(见《opencv安装与装置》) 二、对话框 在VC++6.0中新建对话框,工程名为yuhuan。然后按以下几个步骤: (1)给对话框添加一个读图按钮和picture控件分别修改读图按钮和picture控件ID为:IDC_OPENIMAGE,IDC_IMAGE.如右图。并为读图按钮添加实现函数。(2)在对话框的头文转载 2011-06-03 19:35:00 · 1880 阅读 · 0 评论 -
opencv 删除二值化图像中面积较小的连通域
对于上图的二值化图像,要去除左下角和右上角的噪点,方法:使用opencv去掉黑色面积较小的连通域。代码 CvSeq* contour = NULL; double minarea = 100.0; double tmparea = 0.0; CFileDialog dlg(true); if (dlg.DoModal()==IDOK) {转载 2011-06-06 16:42:00 · 36387 阅读 · 15 评论 -
const用法详解
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法2. 必须初始化 const int i=5; //合法 co转载 2011-06-08 15:11:00 · 600 阅读 · 0 评论 -
深入理解C语言指针的奥秘
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr;转载 2011-06-08 15:14:00 · 500 阅读 · 1 评论 -
vs2010调试内存泄露 a CMFCVisualManager object at $01481660, 200 bytes long
ExitInstance 成员函数 每当应用程序的副本终止时(通常是因为用户退出应用程序),都调用 CWinApp 类的 ExitInstance 成员函数。如果需要进行特殊的清理处理(如释放图形设备接口 (GDI) 资源或释放程序执行期间使用的内存),请重写 ExitInstance。但文档和视图等标准项的清理工作由框架提供,其他可重写函数将用于特定于那些对象的特殊清理工作。 在你的CX转载 2011-06-13 09:50:00 · 4611 阅读 · 1 评论 -
指针数组 与数组指针
#define MAX 10 char* ch1[MAX];// max个字符串 (指针数组)(char*) ch2[MAX];//错误 在vc6上编译不过char (* ch3)[MAX];//含有MAX个字符的指针;即数组指针 ch3=(c转载 2011-10-18 15:54:17 · 675 阅读 · 0 评论