博文

按Ctrl和Ener组合键用法(2009-04-20 13:35:00)

摘要: 有同学要我帮他实现按Ctrl和Ener组合键用法。查了一下有两种。其实也一样的。 VC中实现。 BOOL CMy2132Dlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class/*  if(pMsg->message == WM_KEYDOWN)  {   if(VK_SHIFT == pMsg->wParam)   {      if(GetAsyncKeyState(VK_CONTROL) >> 15 & 0x1)                 DealData();     return TRUE;   }   if(VK_ESCAPE == pMsg->wParam || VK_RETURN == pMsg->wParam)   {    return TRUE;   }  }*/  if(pMsg->message==WM_KEYDOWN) {    //如果按键是:Ctrl+Ener则发送消息      if(pMsg->wParam==VK_RETURN && GetKeyState(VK_CONTROL) & 0x80)   {           Dea......

阅读全文(2414) | 评论:0

VA_LIST的用法(2009-04-03 09:58:00)

摘要:                             有关VA_LIST的用法 VA_LIST 是在C语言中解决变参问题的一组宏 VA_LIST的用法:             (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针      (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。       (3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。       (4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参数了。如果函数有多个可变参数的,依次调用VA_ARG获取各个参数。VA_LIST在编译器中的处理: (1)在运行VA_START(ap,v)以后,ap指向第一个可变参数在堆栈的地址。(2)VA_ARG()取得类型t的可变参数值,在这步操作中首先apt = sizeof(t类型),让ap指向下一个参数的地址。然后返回ap-sizeof(t类型)的t类型*指针,这正是第一个可变参数在堆栈里的地址。然后用*取得这个地址的内容。(3)VA_END(),X86平台定义为ap = ((char*)0),使ap不再指向堆栈,而是跟NULL一样,有些直接定义为((void*)0),这样编译器不会为VA_END产生代码,例如gcc在Linux的X86平台就是这样定义的。 要注意的是:由于参数的地址用于VA_START宏,所以参数不能声明为寄存器变量,或作为函数或数组类型。 使用VA_LIST......

阅读全文(14715) | 评论:0

应用程序实现XP风格简便方法[转】(2009-03-24 15:56:00)

摘要:很简单,此方法SDK/MFC通用,简单的讲就是插入一个资源,类别为24,ID为1,以VC6为例,2003和 05类似。在VC6资源编辑试图下点击Insert(插入),然后选择Custom(自定义),在Resource Type(资源类别)填上24,然后将新插入的资源属性改为如下 在右边内资源容中输入 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>        <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">        <assemblyIdentity          name="XP style manifest"          processorArchitecture="x86"          version="1.0.0.0"          type="win32"/>        <dependency>          <dependentAssembly>            <assemblyIdentity              type="win32"              name="Microsoft.Windows.Common-Controls"              version="6.0.0.0" &nb......

阅读全文(2518) | 评论:1

软件开发学习(2009-03-02 09:05:00)

摘要: http://www.rupeng.com/forum/jian-145.html软件开发学习的好论坛。学习软件开发的人多多到那里去。你可以最快学习软件开发。呵呵。我就从那里起步的。......

阅读全文(1650) | 评论:0

IP地址和子网掩码的区别(2008-10-28 23:54:00)

摘要:我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 1.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段 192.0.0.0 到223.255.255.255 XP默认分配的子网掩码每段只有255或0 A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑 B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑 C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑 我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。 要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。) 把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。 255.0.0.0 11111111.00000000.00000000.00000000 255.255.0.0 11111111.11111111.00000000.00000000 255.255.255.0 11111111.11111111.11111111.00000000 这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电......

阅读全文(3363) | 评论:0

【笔试经验】高盛笔试题精解[转](2008-10-11 15:51:00)

摘要:【笔试经验】高盛笔试题精解 杨中科 发表于: 2008-9-30 17:27 来源: 计算机321 1、A是一个用户自定义类。int a = 100;A *ptr = new A [a];delete ptr;这段代码是干什么的,有个错误请指出来,如何提高效率?JSJ321.com老师分析:这段代码创建了一个包含100个类A的实例的数组。这个代码中删除对象数组占据内存空间的方式是“delete[]”而不是“delete”,因此应该改成:delete[] ptr。因为创建的是100个元素的数组,因此不需要一个单独的变量a,直接如下修改:A *ptr = new A [100];delete[] ptr;2、How to calculate (1 + 2 + 3 + … + n)?JSJ321.com老师分析:不要用老师讲的for循环来计算累计值,而是使用等差数列计算公式,这样效率会高很多int F(int n){return n*(n+1)/2;}3、 在一个火车站:每10分钟就有一火车离站向南开去;每10分钟,也有另外一辆火车离站向北开去。每天,你到达这个火车站的时间并不是固定的(换言之,在时间上你是随机到达火车站的)。但是在你每次到达以后,你就会乘坐最先到站的火车离开,而不管它是往北或者是往南开。 这样在乘坐了一年以后,你发现在90%的天数里,你所乘坐的是南行的火车。请问这是为什么?JSJ321.com老师分析:答案是“南行的火车时间比北行的时间早1分钟”。比如:南行的时刻表为:12:00,12:10,12:20,12:30,、、、 北行的火车时间表为:12:01,12:11,12:21,12:31,、、、 这样的话,除非是你在到达的时候为12:00以后而在12:01之前,那么,从12:02到12:10之间,你都会乘坐南行火车。依此类推、、、这样的话,你在每10分钟里,乘坐南行火车的几率为90%。 4、 你独自一人在一孤岛上等待着救护人员的到来,但他们只会在第10天到达(今天是第零天)。你手头上有两种药品:“甲”和“乙”各10粒。想要活到第二天的话,你必须吃一粒“甲”和一粒“乙”。可是,今天由于不小心你把“甲”和“乙”的颗粒混在了一块,而你又无法辨认出哪粒是“甲”、哪粒是 “乙”来。想要活到第十天的话,你需要怎么去做?JSJ321.com老师分析:把20颗粒......

阅读全文(2568) | 评论:0

【笔试经验】IBM公司的三道笔试题解析[转](2008-10-11 15:50:00)

摘要:【笔试经验】IBM公司的三道笔试题解析 杨中科 发表于: 2008-9-30 16:49 来源: 计算机321 1、在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?JSJ321.com老师分析:先打开开关A,5分钟后再开开关B。然后进屋,不亮的是C,再摸灯管,温度高的是A,剩下的是B。2、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?JSJ321.com老师分析:先把一根香从两头点,另一个只点一头,等两头香点完时候,是半小时,那根一头点的还剩下半小时,之后再把剩下的从两头点,然后完毕的时间就是15分钟。3、:一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?JSJ321.com老师分析:下属知道经理的年龄, 只要把13分成三个数, 三数乘积等于经理年龄有多种可能性 所以, 令下属猜不出答案的原因是: 缺乏附加条件, 三元方程无确定解,一定要转换成二元方程 假设三个女儿中没有双胞胎, 那么三个人年龄之间的差距应该大于一个值(生物学常识) 黑发是显性基因, 如果经理夫妇都不是黑发,那么这黑发的女孩就是... 真相只有一个: 女孩中没有双胞胎, 但是有有两个女孩的年龄是相同的! 然后, 解二元方程。显然3个女儿的年龄都不为0,要不爸爸就为0岁了,因此女儿的年龄都大于等于1岁。这样可以得下面的情况:1*1*11=11,1*2**10=20,1*3*9=27,1*4*8=32,1*5*7=35,{1*6*6=36},{2*2*9=36},2*3*8=48,2*4*7=56,2*5*6=60,3*3*7=63,3*4*6=72,3*5*5=75,4*4*5=80因为下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,说明经理是36岁(因为{1*6*6=36},{2*2*9=36}),所以3个女儿的年龄只有2种情况,经理又说只有一个女儿的头发是黑的,说明只有一个女儿是比较大的,其他的都比较小,头发还没有长成黑色的,所以3个女儿的年龄分别为2,2,9!......

阅读全文(2440) | 评论:1

软件开发方向的大学生千万不能被误导[转](2008-10-11 15:49:00)

摘要:软件开发方向的大学生千万不能被误导 杨中科 发表于: 2008-9-18 13:44 来源: 计算机321 今天看到两篇文章,都是谈软件开发方向的大学生应该学什么的。总是在网上看到大面积的在吹嘘“计算机专业高校教的已经过时了,企业要求掌握开发经验的大学生,培训机构异常火爆”之类的话,我突然意识到这些其实都是那些培训机构的本位主义的炒作而已。其实大部分企业招聘应届生的时候并不是要求学生有太多的所谓项目经历,但是要求最高的是应届生对专业课的掌握程度,企业的笔试题也是以专业课的题目为主。这是企业的校园招聘和社会招聘不同的地方。有人可能会举出反例,我只能说那样要求应届生有这样那样项目经历的公司都是草台班子小公司,不在我们考虑的范围之内。有的公司招聘应届生的时候如果看到你有太多项目经验的时候甚至怀疑你在校期间是否有认真学习专业课。不能忽视的一个事实是很多高校的任课教师并没有很丰富的开发经验,因此也不能教给学生关于“这门课有什么实际用途”之类的问题,这一直困惑着我们。可以看到像jsj321.com这样的网站已经开始在向这方面努力了,搞了很多针对在校计算机专业大学生的免费在线课程,请了很多有项目经验以及扎实理论基础的工程师来讲课,这样与学校的课程同步学习,“白天听大学老师讲理论,晚上听网上老师讲实战”,两者相结合就能培养出有实战经验,同时又不失理论基础的软件精英。下面是这两篇文章的摘录: 写给还在大学的兄弟姐妹 FROM:http://www.cnblogs.com/hanxianlong/archive/2008/09/17/1292446.html 基础很重要 许多企业招聘,要求大学本科毕业生有一定的工作经验。而现实是,当今的大学教育使得有工作经验的本科生少之又少。从大学过来的人都应该清楚大学生活是什么样子:要么很努力的学习——这是考研一族,要么外出找兼职——这是工作一族,要么就过一天少一天——这是混日子一族。其他的情况当然也有,在此暂且只分为这几类学生。考研的学生,若是考研成功便进一步的去深造,若失败则面临着求职。而他们学习是如此的刻苦,何来工作经验?兼职的学生,有些同学可能做的很好,能够很好的处理兼职与学习的关系,而某些认为兼职就是“赚钱”的学生可能处理的并不是那么好,认为“能让我毕业就行”,殊不知毕业时找工作别人对于兼职所带来的工作经验向来是不太认可的。混日......

阅读全文(2397) | 评论:0

计算机专业学生寻找实习的经历和思考(3)[转](2008-10-11 15:48:00)

摘要:计算机专业学生寻找实习的经历和思考(3) 1.    为什么要找实习a)    公司和企业的人才招聘趋势。越来越多的企业开始倾向于从实习生中选拔正式员工,而非校园招聘,譬如 i.    CA就没有校园招聘,完全从实习生中录取 ii.    IBM近两年也突出实习生招聘,而淡化校园招聘 iii.    腾讯今年的实习生招聘是校园招聘的一部分,通过实习生的招聘流程,校园招聘中可以直接到最后一个流程,面对HR。 iv.    MS,Baidu,Google等企业的转正几率也是非常大的。  理由很简单:成本低廉,质量可靠,所谓物美价廉。  i.    首先,实习生的筛选和校园招聘的筛选是一致的,更多的时候,我认为,实习生的竞争更加激烈,所以企业招到实习生质量不仅达到,甚至是高过校招的质量。据说今年IBM的Blue path way,简历达4W份,笔试1W人,面试1K+人,这样良好的人力资源,还会挑不到好的人才? ii.    实习生在公司实习期间,企业可以观察你的能力,发现优秀的人才,而不合适的人,由于签署的不是正式合同,要筛选掉,也是没有成本,没有风险的。 iii.    另外,实习生省去了校招的培训成本,并且至少比校招的人员在公司多干半年,甚至一年,同时拿的是实习工资。一方面是廉价劳动力, 另一方面能够更快的融入团队,进入角色。 iv.    宣传公司文化,IBM的浩浩荡荡,广移的香格里拉,不用多说了。 b)    企业有企业的利益,我们为什么要寻找实习呢?很简单,我们的利益也在里面。 i.    提高自己,增加实践经验,了解和掌握专业的工程化的开发方式,让自己变得专业。 ii.    提高自己的软实力,包括团队精神,沟通能力,以及性格,思维方式的成熟。 iii.    了解职场,了解自己所在的行业,对我们来说是IT业,以及在这个行业中的定位。更重要的,是了解自己选择的职业和工作,明白这条路到底是否适合自己,以便更早制定下一步的职业规划。 iv.&nbs......

阅读全文(3289) | 评论:0

计算机专业学生寻找实习的经历和思考(2)[转](2008-10-11 15:47:00)

摘要:计算机专业学生寻找实习的经历和思考(2) 3.    笔试和面试经历的总结,过于具体的东西,不便透露,毕竟签了保密协定。 a)    微软,我投的是测试部门的Linux职位 i.    电面问一些Linux多线程,网络编程相关的问题。包括同步互斥机制,异步IO等。另外,还有例行的项目经验的介绍。也问了一些基本算法,包括时空复杂度(“计算机321”注释:也就是时间复杂度和空间复杂度)的分析。最后让写一段字符串处理相关的代码,发到邮箱里。 ii.    笔试三个小时,200分,题目有选择题,编程题,分析题,设计题,难度我感觉是最大的,涵盖编程语言,算法,数据库,正则表达式,软件工程,操作系统,计算机网络等等。由于不同的部门关注不同的题目,所以总分不决定一切。貌似没有120分及格的…我深刻的体会了自己的弱小… 后面的都是研发职位了 。b)    Google i.    笔试也是一些基础的东西,算法,离散数学,比较简单。 ii.    一面基本算法+开放设计题。  c)    百度 i.    笔试三题基础选择,然后两题程序设计,最后一题系统设计,难度适中吧。 ii.    面试比较正规,一面基础,二面项目,三面HR,可惜没有机会去体验下。 d)    腾讯 i.    非常平易近人,笔试题目就像学校考试。半个小时交卷闪人…… ii.    面试也是传统的三面,面试官和HR都非常的Nice,一面之后就开始聊天了,呵呵,很赞。非常喜欢和他们聊天~ 一面主要在聊miaoftpd,问了一些具体实现的问题。二面在聊看过的书籍,学习的方法和方式,一些职业规划。三面和HR gg继续聊。那天聊的真的很high。另外非常感谢他们给我的一些建议,非常的中肯。 e)    CA i.    笔试题也非常博杂,我除了C++,Linux和DB以外,Win32,.Net,MFC,com基本上都不会…. ii.    面试只有一面,是team member + t......

阅读全文(2866) | 评论:0