随笔分类 -  编程语言

摘要:本文背景:本人在编程时需要匹配字符串,由此想到了如果文件是各种字符编码的话,匹配结果有可能不正确,那么,如何判断不同的字符集?如何在不同字符集之间做转换?对于UNICODE编码逐渐通用的情况下,我们软件人员如何从容应对? 本文首先对常用字符集进行总结,然后在字符集的显示及转换上以实例介绍,最后总结了编程中遇到的编码问题。本文目的:对字符集编码做详细介绍,关键配以实例讲解,降低问题的复杂度。本文内容:1.常用字符集分类1.1简介·ASCII及其扩展字符集作用:表语英语及西欧语言。位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。范围:ASCII从 阅读全文
posted @ 2012-06-27 15:45 bigbigtree 阅读(1088) 评论(0) 推荐(0)
摘要:AlphaBlend中目标DC的矩形范围设置错误,应为0,0,nWidth,nHeight;另外参考微软MSDN源码:Alpha Blending a BitmapThis topic has not yet been ratedRate this topicThe following code sample divides a window into three horizontal areas. Then it draws an alpha-blended bitmap in each of the window areas as follows:In the top area, cons 阅读全文
posted @ 2012-02-13 15:53 bigbigtree 阅读(516) 评论(0) 推荐(1)
摘要:在GDI有一个特点: 就是所有的图片绘制,都是通过DC来完成的。DC之间是可以相互传递的。两个DC之中的图形 通过DC--->DC 来相互传递信息。 无论 位图--->屏幕 位图--->位图 屏幕---->位图 屏幕----->屏幕他们所使用的都是DC-->DC之间的传递。其关键点便是:如何获得各自的DC 对于屏幕: 直接使用GetDC() ReleaseDC() 便可 ::GetDC() 返回的是CDC* 对于图片: CBitmap 不支持DC CImage 获得DC[cpp]view plaincopyprint?CImageimg;img.Load(i 阅读全文
posted @ 2012-02-09 09:37 bigbigtree 阅读(2667) 评论(0) 推荐(2)
摘要:分辨率我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次。调色板 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R、G、B三个分量表示。因为每个分量有256个级别,要用8位(bit),即一个字节(by... 阅读全文
posted @ 2012-02-09 09:07 bigbigtree 阅读(11694) 评论(1) 推荐(0)
摘要:GDI基本概念及思想编写代码的一般步骤:先用CreateDC创建(或GetDC获取)device content(DC),然后用GetObject获取(或使用创建object的函数创建)需要的object,并用SelectObject将获取的object选入device content(DC),再使用object进行相应的画图操作,最后用SelectObject将原来的object重新选入DC,并delete或release删除或释放前面创建或获取的DC。1.关于device context(DC)设备内容:用来显示位图的地方.四种设备内容:显示器设备内容、打印机设备内容、内存设备内容、Inf 阅读全文
posted @ 2012-02-09 08:57 bigbigtree 阅读(1286) 评论(0) 推荐(1)
摘要:利用VC实现图像的特殊显示效果经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有显示一些特殊效果的图像,比如前一阵子中央一套放的《长征》、目前中央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和"图像的雕刻效果",经过这些特效处理后的图像增强了观众们的视觉效果,它们看上去仿佛是使用3D技术作的,这也是为什么这种技术那么流行的原因吧。其实,我们完全可以用一些简单的数字图像处理算法来实现这些看似复杂高深的显示效果。我们手头上的一些关于利用VC开发数字图像资料大都是讲解如何控制图像的每一行或每一列像素的显示时间或顺序来实现一 阅读全文
posted @ 2011-12-17 15:36 bigbigtree 阅读(2290) 评论(0) 推荐(0)
摘要:DYNAMIC_DOWNCAST(class, pointer ):如果pointer指针所指向的对象是class类型的,就返回这个指针。否则返回NULLpwnd 你获取到的指针class 你的类class A;例如 你获取到一个指针 XXX *pointer; 你想判断它是不是指向某个类 例如 A 这个类A* p= DYNAMIC_DOWNCAST(A, pointer );如果pointer是指向A这个类则返回此指针,否则返回空CRuntimeClass和IsKindOf的关系CRuntimeClass在MFC中的作用很重要,因为MFC利用它来进行类的动态确定,即是通过类变量来判定该变量是 阅读全文
posted @ 2011-12-16 10:03 bigbigtree 阅读(405) 评论(0) 推荐(0)
摘要:1、 声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是 互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件: //A.cpp int i; void main() { } //B.cpp int i; 这两个文件极为简单,在A.cpp中我们定义了一个全局变量i,在B中我们也定义了一个全局变量i。 我们对A和B分别编译,都可以正常通过编译,但是进行链接的时候,却出现了错误,错误提示如下: Linking... B.obj : e... 阅读全文
posted @ 2011-12-02 20:13 bigbigtree 阅读(2879) 评论(0) 推荐(0)
摘要:文件中的#ifndef头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:#ifndef <标识> #define <标识>...... ......#endif<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把 阅读全文
posted @ 2011-12-02 19:41 bigbigtree 阅读(272) 评论(0) 推荐(0)
摘要:作者:乾坤一笑 C语言教学早就进入了我国各大高校的教程,但是大家对它的认识以及重视程度还很是不够。很多人认为C语言无非是一种教学语言,是一种工业语言,它很老了,该淘汰了,比不上VC++、Java、C#等新兴语言牛B,所以不是很重视C语言。我认为,这些朋友是受了某些舆论的误导才会有此看法。C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),君不见Windows API都是C语言函数的接口?Unix/Linux绝大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多,大多都是依靠某种Applicati. 阅读全文
posted @ 2011-12-02 14:53 bigbigtree 阅读(624) 评论(0) 推荐(0)
摘要:编辑器加载中...1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime) SYSTEMTIME st; CString strDate,strTime; GetLocalTime(&st); strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth 阅读全文
posted @ 2011-12-02 14:30 bigbigtree 阅读(78485) 评论(0) 推荐(1)
摘要:部分解题报告添加新内容,除了原有的“大致题意”和“解题思路”外,新增“Source修正”,因为原Source较模糊,这是为了帮助某些狂WA的同学找到测试数据库,但是我不希望大家利用测试数据打表刷题PS:部分题目的评论中也有给出了测试数据,未必完全,仅供参考这个POJ分类版本是被我修改过的,现在还在根据我做的题在逐步修改中有部分题目的分类不合理,所以根据我个人做题的心得对其进行了重新分类推荐文:1、一位ACMer过来人的心得 2、POJ测试数据合集OJ上的一些水题(可用来练手和增加自信)(poj1003,poj1004,poj1005,poj1207,poj3299,poj2159,poj273 阅读全文
posted @ 2011-11-28 11:42 bigbigtree 阅读(1763) 评论(0) 推荐(1)
摘要:一。关于内存 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。 2.内存使用错... 阅读全文
posted @ 2011-11-28 09:10 bigbigtree 阅读(242) 评论(0) 推荐(0)
摘要:以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2. 设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle & 阅读全文
posted @ 2011-11-20 09:53 bigbigtree 阅读(275) 评论(0) 推荐(0)
摘要:CString::MakeUppervoid MakeUpper( );Remarks备注Converts this CString object to an uppercase string.将原对象的所有小写英文字母转换为大写。(只是将小写的英文字母转换为大写,对于其它的字符不做变化,例如:大写字符,数字,汉字)Example实例The following example demonstrates the use of CString::MakeUpper.// example for CString::MakeUpperCString s( "abc" );s.Mak 阅读全文
posted @ 2011-11-18 10:39 bigbigtree 阅读(6548) 评论(0) 推荐(0)