摘要: 对于错误提示:dlgdata.cpp断言错误的解决方法。line:308首先可以肯定的是一定是控件那出了问题,我的事RadioButton那出错了。原因是没有没有分组,导致两个Radio不在一组,从而出现错误。解决办法是:选中第一个Radio,---->属性------>Group打上勾,从新编译,没有错误了,解决! 阅读全文
posted @ 2014-01-01 12:34 丁洋 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1.DDX_Control代码作用?DDX_Control是将控件ID与类的成员变量匹配起来,来完成数据交换,当定义一个控件变量时,MFC会自动为你增加DoDataExchange这个函数是用来完成数据变换,还包括DDX_TEXTeg:voidCAsTestToolsDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX);DDX_Control(pDX,IDC_MAINTREE,m_Treemain);//IDC_MAINTREE是树控件的ID,m_Treemain是树控件对应类的对象}简单的说,就是把控件变量(m 阅读全文
posted @ 2013-12-31 21:53 丁洋 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 今天就写个排序里比较简单的两种算法:冒泡,选择思想:冒泡就是每次循环都两两比较,小的话就交换数据,这样一趟下来,最小的就选了出来,或者说是冒了出来。多次循环后,数组便是有序数组。选择是从数组中选出一个小的,然后记录下索引,到一次for循环后对比,判断是否需要交换数据,多次循环后,数组就是有序数组。这两个算法比较简单,但是也很经典,所以在这就记录下一篇。对于他们的时间复杂度,在很多排序中算是较差的,但是基础思想还是有学习的地方的,而且这两个都是不稳定排序。下面直接上代码,只做简单参照: 1 /* 2 *冒泡。选择排序 3 *丁洋 4 */ 5 #include 6 #include 7 /* . 阅读全文
posted @ 2013-12-25 18:54 丁洋 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 花了些时间好好看了堆排序的内容,代码也敲了,现在来总结一下。为了说明白点,有些图片我就从网上截取了。首先是堆的概念。数据结构中的堆,又叫二叉堆一般用数组来表示堆得结构,或者说是把堆数组化。举个列子来看:这样就很清楚的看出了堆的储存结构。接着就是堆得操作处理了。首先堆的插入操作:上代码: 1 void Heap_insert_fix(int a[],int n) 2 { 3 int temp; 4 int i,j; 5 i = n; 6 j = (i - 1) / 2;/*父节点*/ 7 temp = a[i];/*记录插入的数据*/ 8 ... 阅读全文
posted @ 2013-12-24 22:44 丁洋 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 今天来谈谈排序效率较高的归并排序算法。思想:分治 + 合并具体点说就是将一个数组分成左右两个部分,然后将左右两个部分的顺序排好后,在合并到一起!那么怎么将左右两个部分的顺序排好呢?我们这样看,用递归的思想,将左右两个部分再次分成各个的两个部分,直到每个部分的数据个数为1。这样我们便得到了有序的部分数组。接着,我们将这些数组合并。最终便会成为有序的数组。看代码: 1 /* 2 *归并排序 3 *丁洋 4 */ 5 #include 6 #include 7 #include 8 #include 9 /*10 *合并数组11 *a[first --- mid-1]12 *a[mid+1... 阅读全文
posted @ 2013-12-23 13:59 丁洋 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 写一个系列的经典算法,共同学习!1.快速排序基本思想:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。在网上看到一篇博客,把快速排序命名为 挖坑填数+分治法,感觉很有道理,所以等会程序就按这两部来写。先说说挖坑填数的思想:1.i=L;j=R; 将基数挖出形成第一个坑a[i].2.j--由后向前找出比它的小的数,找到后挖出此数填前一个坑a[i].3.i++由前向后找出比它大的数,找到后挖出此数填前一个坑a[j].4.重复2,3步骤直到i==j,将基数填入a[i]中。代码实现:(挖坑 阅读全文
posted @ 2013-12-22 21:32 丁洋 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 今天把u-boot,linux,yaffs2文件系统的移植全部搞定了,在我的mini2440板子上跑起来了,呵呵,兴奋啊!现在回头看看自己花了这么长时间所作的工作,结论就是,只要坚持下去就一定会成功的。 下面就把我移植过程中的步骤记录下来,留着以后看看,也许还会用到的。 先是u-boot部分: 我用的是 开发环境:fedora 14 开发板:mini2440 256M NandFlash 64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3 BusyBox版本:busybox-1.7.0 yaffs制作工具:mkyaffsimage yaffs2制作... 阅读全文
posted @ 2013-12-22 15:25 丁洋 阅读(1090) 评论(0) 推荐(0) 编辑
摘要: 之前在学习如何在C语言中嵌入汇编时有了解到C语言之前的参数调用是使用寄存器R0传递第一个参数,R1传递到第二个..一直到R3传递第四个参数.但是 实际上有时可能传递的参数非常多,超过8个,或是参数中有浮点数之类,参数也会超过4个寄存器,对于超出的部份并不使用R4,而是使用堆栈的方式.对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Devel 阅读全文
posted @ 2013-12-20 10:20 丁洋 阅读(6609) 评论(0) 推荐(1) 编辑
摘要: kernel:2.6.26.5gcc:arm-linux-gcc (gcc 3.4.1)cpu:s3c2410编译设置 使用arm-linux-交叉编译工具链修改根目录下Makefile ARCH ?= armCROSS_COMPILE ?=arm-linux-内核移植 nand分区修改arch/arm/plat-s3c24xx/common-smdk.c,找到相关代码做如下修改static struct mtd_partition smdk_default_nand_part[] = {/* [0] = { .name = "Boot Agent", .size = SZ 阅读全文
posted @ 2013-12-17 14:03 丁洋 阅读(1650) 评论(0) 推荐(0) 编辑
摘要: 如何制作LINUX的patch文件及如何打patch对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件。 patch文件也叫补丁,就是一个文本文档,这个文档包含了在两个不同版本的源代码树之间的变化。 补丁是通过diff应用程序来创建的。 为了正确地打上一个补丁,你需要知道这个补丁是从哪个基础版本产生出来的以及这个补丁将要把 目前的源代码树变化到什么新的版本。这些信息或者会出现在补丁文件的原数据中,或者可能从文件名中推断出来。1,如何制作补丁patch文件 比如基于kernel内核 做了修改,修改了LCD代码,修改前的内容放在文件夹ke.. 阅读全文
posted @ 2013-11-10 21:18 丁洋 阅读(785) 评论(0) 推荐(1) 编辑