自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (4)
  • 收藏
  • 关注

原创 使用*号作为格式化宽度

字符串的格式化,类似c语言,包括类似%7.2f等格式化方法,而python则更加方便。可以使用*(星号)作为字段宽度或者精度(或者两者都使用*),此时数值会从元组参数中读出:例如:>>> s = "%.*s" % (5,"HELLO,baby!")>>> s'HELLO'请记住,一定要加上点号(.)分隔,否则如:>>> s = "%*s" % (5,"H

2014-02-17 20:25:13 643

转载 Python3.3 IDE环境的搭建(Eric5.3+pyqt4.8)

学Python3.3一段时间了,觉得上手真的很快,想做点GUI的程序,毕竟界面交互才是王道,可是支持3.3的IDE平台很少,有的插件只支持2.X版本的,不想回去用2.X版本的,于是google,baidu以后寻求一种可以支持3.3的IDE环境。    最先试了eclipse+Pydev+wxFormbuilder,折腾了很久,下载了最新版的eclipse+Pydev,可以正常运行hello w

2014-02-17 20:24:12 954

原创 使用CreatePatternBrush,用位图填充一个矩形区域,出现交错问题??

首先看示例程序:        HBITMAP hBmp = NULL;        hBmp = ::SHLoadDIBitmap (filePath);        if (!hBmp )        {            PQMsgBox(L "Load Message Dialog Bitmap Fail!" );            LogTo

2014-02-17 20:22:13 2121

转载 CString的GetBuffer用法,GetBuffer本质,GetBuffer常见问题解决方法

一.函数原型CString::GetBufferLPTSTR GetBuffer( int nMinBufLength );throw( CMemoryException );Return ValueAn LPTSTR pointer to the object’s (null-terminated) character buffer.ParametersnMi

2014-02-17 20:21:25 592

原创 printf可变形参的研究

C语言printf函数的实现:研究 printf的实现,首先来看看 printf函数的函数体   int printf (const char *fmt , ...)   {   int i ;   char buf [256 ];     va_list arg = (va_list)(( char*)(&fmt ) + 4 );   i = 

2014-02-17 20:20:38 686

转载 软件公司组织架构

这些年一直在IT企业工作,一直总结一下软件企业的组织架构,软件公司大部分都很年轻,整个行业还在调整期,一般规模都在300人以内,现在国内大型的软件产品公司都不是靠软件起家的,国内软件三强:华为、中信、海尔都是从硬件甚至是家电做起的。   一个小型的软件公司必备的团队有:研发部、销售部、人力资源部和测试部,这种企业一般人数在50~100人之间,销售部也可能称为市场部,一般来说,市场、行销和服

2014-02-17 20:19:47 14674

原创 雅黑字体,文字大小不正确,数字不为雅黑的解决

张郎之前用的方式,巴源同样使用,但就是字体数字不为雅黑,解决良久,终于得到解决方法:原来,张郎的方式是如下:font .CreateFont( height, nWidth , 0 , 0,        nWeight,        FALSE,        FALSE,        FALSE,        ANSI_CHARSET,        OU

2014-02-17 20:19:09 2052

转载 MFC下的模态与非模态对话框

MFC下的模态与非模态对话框mfcdeletedialognull框架编程以前学VC的时候觉得模态与非模态很简单,两个的创建方式不同,一个是Create一个是DoModel,然后如果是模态的就很霸道,不让你去点后面的父窗口,如果是非模态就可以点击后面的父窗口,但是在实际的应用发现一点很需要注意的地方: 我们如果便写过window SDK,可以知道,其实窗口的创建不关事父窗口

2014-02-17 20:18:40 788

原创 PreTranslateMessage与WindowProc的区别

用PostMessage发送的消息要先经过PreTranslateMessage来处理,而SendMessage发送的消息直接交到WindowProc来处理。键盘等消息在框架中在它进入view的WndProc之前,需要通过PreTranslateMessage来捕获,并处理,否则在框架中得不到这个消息。所以就用该在框架中用到PreTranslateMessage这个函数截住键盘消息,然

2014-02-17 20:17:53 1237

原创 架构师的第二阶段:做(Conceptual-Architecture)

前面说到了“准备做”的内容,本节将讲述如何“做”!人们更愿意叫它“概念架构”,因为人们都比较喜欢文艺!  程序猿出生的人,都比较喜欢用专业的词汇来理解架构,尤其喜欢高深莫测的技术。所以,开发者更喜欢“架构 = 模块 + 接口”这一说法,主要还是因为它贴近程序猿的身份,一提到接口,大家都乐了,有了接口就可以去实现接口,有了接口就知道模块间的联系,仿佛大千世界就只有 用接口才能沟通你我,才能联系彼

2014-02-17 20:16:58 773

原创 架构师的第一阶段:准备做(Pre-Architecture)

上节说到,做任何事情都可以分为三个阶段:准备做、做、做好。本文,就将进入第一个阶段,准备做阶段。Pre-Architecture:准备架构  准备架构阶段,最最重要的是弄清楚要做什么东西,即掌握用户需求。应该来说,整个准备阶段都围绕着“需求”来转。  我将它描述为如下过程:需求-->约束-->质量-->关键功能  初学者根据上诉步骤,一步一步来,就能够完成准备架构阶段。1.需求

2014-02-17 20:16:06 989

原创 新生架构师的首个任务--分阶段!

新生架构师拿到首个任务的时候都会无从下手,有劲而不知如何使!  其实,对“架构”做分解是最好的办法,也就是分而治之的思想。  首先,明确架构应分为哪几个过程,如下是《一线架构师实践指南》涵盖全书的思想,分为三步:一、准备架构:Pre-Architecture二、概念架构:Conceptual-Architecture三、细化架构:Refine-Architecture  用

2014-02-17 20:14:34 615

原创 新生架构师的困惑

作为一个架构新手,一般会有如下困惑:  1.做了好几年的程序开发,但是对架构缺乏经验,没有信心,缺乏指导;  2.如何明确需求,总觉得需求不明确,影响了设计;  3.系统架构从何起步;  4.如何将系统划分模块;  5.非功能需求如何把握。 在接下来的学习中,将逐一解决这些困惑。 参考学习资料:《一线架构师实践指南》《敏捷开发的艺术》

2014-02-17 20:13:47 584

原创 结对编程

所谓结对编程(pair-programming)是指两个程序猿同时来编程,一个人编,一个人看。把编写的人叫做“驾驶者”,把看的人叫做“领航者”。结对编程的好处:1.能够提高编程效率,虽然看似两个人来完成一个人的事,但是会减少bug的出现,提高程序运行的效率,而且一个人编,一个人思考,会避免一些错误的发生;2.减少被打断的风险,如果一个人被打断,另外一个可以接过来继续工作;3

2014-02-17 20:12:12 677

原创 如何精力充沛的工作

如何让每天工作均能够精力充沛?重中之重:按时下班下班后的时间,多陪伴家人朋友,纯情的投入社交和活动中,玩要玩得愉快!程序猿应该提升每天工作的效率,高效的工作一天后会非常疲惫,如果继续加班,常常会犯错误,会走捷径,会得不偿失。如果累了,就去休息!另外,职业素养非常重要,哪怕全团队的人都处于低迷士气低落的时候,职业的程序猿仍然能够保持状态,纯

2014-02-17 20:11:30 755

原创 软件开发--比喻

做开发就像推石头,石头从天上掉下来时,会迸发出巨大能量,从越高的地方掉下,能量就越巨大。开发人员要做的事情就是把石头推到山头,市场就像领路人,引领着石头的前进道路,市场能够带你顺利的把石头沿着捷径推向山顶,也可以让你掉进坑里出不来,所以,好的市场加强大的开发能力确保石头被顺利的推向山顶,然后销售再使出最后一股力,让石头从不同的方向落下,最终迸发出不同的力量!

2014-02-17 20:10:54 684

原创 模板的定义

对于一般的函数,函数的声明放在.h文件中,而函数的定义放在.cpp中。而模板是特殊的。如果还按照一般的方式,将模板函数的声明放在.h中,定义放在.cpp中,那么有多个cpp调用该模板的函数时就会有链接的错误。注意是连接的错误,而不是编译的错误。为什么呢?网友解释:因为在编译时模板并不能生成真正的二进制代码,而是在调用模板的地方才去找模板的声明和实现,在这种情况下

2014-02-17 20:10:13 529

原创 delete 一个NULL地址不会有任何问题

通常,我们new一个对象,就要调用delete释放对象。如下:int * nCount = new int;delete nCount;      // 正确如果:int * nCount;delete nCount;      // 错误因为nCount没有指定内容,所以释放会错误。再如果:int * nCount = NULL

2014-02-17 20:09:10 2373

原创 机制和策略的理解

对于TCP/IP中关于Ip选路有机制和策略两个概念;同样,对于Linux或unix的接口设计有一个说法:“提供机制而不是策略”,它可以理解为“提供什么样的功能(机制)”,“怎样实现这个功能(策略)”,那么接口就像是一个虚函数,策略便是这个虚函数的实现。更加通俗的理解这两个概念:机制 —— 文档策略 —— 编码

2014-02-17 20:07:33 1286

转载 C,C++表达式求值顺序

最近这问题有从日经变时经的趋势,这里贴出裘老的解释。求加精。---------------------------------------------------------------------------------------------裘宗燕:C/C++ 语言中的表达式求值经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m 

2014-02-17 20:05:19 571

原创 关于win32程序\n问题

描述:在向文件中写数据的时候,在字符串的末尾加了一个\r\n,原本的意思是对应回车换行,可惜将文件用二进制打开一看发现\r\n对应这0x0d 0x0d 0x0a,为什么会变成三个字节呢,不得其解,难道win32下面\n就是指回车换行?解决:如下字符串:infoFileComment ="[ComtradeEvent]\n;事件通道,0-电压,1-电流\n";如下写文

2011-11-16 16:17:12 447

原创 wince程序开发崩溃快速定位之工具推荐

写wince程序经常遇到崩溃的问题又不晓得在哪里发生了崩溃,更有可能不知道程序其实出现了异常。这类问题该如何解决?其实,有一些工具很值得一用。1.拥有一根串口线,做嵌入式开发必备的工具。2.要有一个串口调试助手,这里推荐用丁丁串口调试工具:下载地址3.具备知道wince内存变化的工具:下载地址4.一个检测崩溃的工具,wince remote  process explore,此

2011-10-20 16:15:50 658

原创 明智而审慎的使用形参

问题:wince6.0,程序运行会出现崩溃。在程序运行的时候Total memory:66420KB, Current usage:26136KB,可见还有很多空间可以用。我自己用标准c++写的一个模块Comtrade,现在要加到wince mfc的工程中,mfc程序会每次会new 大约15k的空间如:CComTradeData *comtradeData =new CComTrade

2011-10-20 15:52:54 652

原创 请勿在一个工程中写两个相同名称的cpp文件

今天将自己写的一个对comtrade(暂态数据事件交换格式)标准实现的文件放到了另外一个vs工程中,将自己的所有源文件放到了另外一个vs2008工程的新建的comtrade文件夹下面。不料,编译的时候提醒了一个错误:链接的时候库的问题:unresolved error:.

2011-09-24 10:05:33 2416 2

原创 vs2008每次build都会重新编译链接,浪费大量时间。

无外乎两种情况:1.时间问题,所创建的文件的时间比如是:2011-09-22 09:03:22,那么你的系统时间之前被你改动过当前时间是:2011-08-22 09:03:22。这下好了,vs每次编译的时候都会检查每个文件的最后修改日期,发现是上一个编译时间之后的,都会重新编

2011-09-24 09:53:07 4876

原创 VS2008编译tcpmp源码

<br />1.         新建空solution,存放路径尽量都使用英文命名的文件夹。<br />2.         将源码的common文件夹连同config.h文件拷贝至solution目录下<br />3.         在solution选项下右击->Add已经存在的工程,选择common.vcp,(记住一定要选择.vcp工程,因为它是针对嵌入式平台的,.dsp是针对win32平台的,前面一直在拿.dsp工程编译,总是出现这样那样的错误不知花费多少精力)。<br />4.        

2011-03-21 11:44:00 643

原创 VS2008编译tcpmp源码

<br />1.         新建空solution,存放路径尽量都使用英文命名的文件夹。<br />2.         将源码的common文件夹连同config.h文件拷贝至solution目录下<br />3.         在solution选项下右击->Add已经存在的工程,选择common.vcp,(记住一定要选择.vcp工程,因为它是针对嵌入式平台的,.dsp是针对win32平台的,前面一直在拿.dsp工程编译,总是出现这样那样的错误不知花费多少精力)。<br />4.        

2011-03-21 11:42:00 844 1

原创 VS2008单步调试tcpmp“遇到插件模块不能进入”解决

<br />本人在编译vs2008 tcpmp工程时,单步调试主函数,至interface插件中的一个函数指针时,总是不能够跳转到interface对应的位置。苦恼了很久,还好同事帮忙讨论了一下,原来是:interface在工程在编译的过程中会在其工程debug目录下生成interface.pdb文件,该文件主要记录了各种调试信息,只在debug调试的时候会生成。<br />但是我在整个solution的工程debug下却没有发现此文件,所以,我将此文件拷贝至整个工程的debug目录下,在单步调试,可以进入

2011-03-21 11:39:00 651

原创 第一天- -&gt;- -&gt;- -&gt;

2009-04-22 00:39:00 591

产品设计流程

产品设计流程卡片,对照此卡片一步一步的进行产品的设计

2013-09-17

CE打印cpu和内存信息的工具

在wince下打印cpu和内存信息的小工具,在ce上运行,然后通过串口查看系统的cpu使用率和内存使用率。

2013-09-12

丁丁串口调试工具

丁丁串口调试助手,非常方便使用。 可接受和发送串口信息

2011-10-18

vs2008编译tcpmp for wince的方法

tcpmp在vs2008下的编译,常常会为新手带来很多麻烦和问题,本文介绍最简单的编译方法。我所用的是arm的开发板,wince5.0的系统。

2011-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除