自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 Double-Check Locking

多线程安全的单例模式: CSingletion*CSingletion::ms_Instance=NULL;CSingletion *CSingleton::GetInstatce(){      if(ms_Instance==NULL)      {             Lock();             if(ms_Instance==NULL) 

2009-12-14 11:56:00 1064 1

原创 利用RIL代理接口实现短信的操作之短信的接收

利用RIL代理接口实现短信的操作之短信的接收    作者:吴春雷QQ:819543772Email:[email protected]提到在Windows Mobile客户端对短信进行操作,几乎所有人都会在第一时间想起CEMAPI接口,诚然cemapi接口是目前为止使用最多,也是最为成熟的技术,利用Cemapi接口可以很方便的实现短信的发送、接收、删除等相关操作,而无需关注繁琐

2009-06-17 22:20:00 3641 3

原创 Cempi实战攻略(六)——如何截获到达的短消息

Cempi实战攻略(六)——如何截获到达的短消息By 吴春雷QQ:819543772EMAIL:[email protected].      MapiRule是什么?我从哪里能够得到它?MapiRule是微软提供的用于演示短信拦截技术的DEMO程序,程序展示了使用COM技术为tmail.exe注册服务,实现客户端短信拦截的基本方法。您可以再SDK的安装目录中找到它,

2009-03-29 11:48:00 6370 14

原创 CEMAPI实战攻略(四)——发送短消息

CEMAPI实战攻略(四)——发送短消息By 吴春雷QQ:819543772EMail:[email protected]四.发送短消息发送短信是一个相对比较简单的过程,之所以拿出来一节来讨论,是因为我们不仅仅要讨论如何发送短信,还要讨论一个重要的进程,也就是tmail.exe进程。简单的讲,这个进程在后台控制着短信和邮件的接收和发送过程,在前台提供一个显示UI,供大家对短信进

2009-03-11 15:23:00 3665 3

原创 CEMAPI实战攻略(三)——操作信箱中的短信息(下)

 CEMAPI实战攻略(三)——操作信箱中的短信息(下)By 吴春雷QQ:819543772Email:[email protected] 6.       解析原始短消息         当成功获取原始信息以后,还不能从中直接获得短信正文等我们想要的内容,要想得到这些内容,还需要对原始信息作一些操作。还记得我们前面提过的短消息的组成结构吗?下面的内容从原始短信中获取每

2009-03-10 17:43:00 5090 18

原创 CEMAPI实战攻略(三)——操作信箱中的短信息(上)

CEMAPI实战攻略(三)——操作信箱中的短信息(上)by 吴春雷QQ:819543772Email:[email protected]三.操作信箱中的短信息1.       Windows mobile中短消息的组成用过的Windows Mobile平台设备的朋友在第一次发送的短信的时候或多或少都会有些困惑,尤其是使用Windows Mobile 2003以前版本的朋友,

2009-03-09 19:55:00 3633 4

原创 CEMAPI实战攻略(二)——建立与短信信箱的连接

CEMAPI实战攻略by 吴春雷QQ:819543772Email:[email protected]二.建立与短信信箱的连接上一部分已经讨论过,如何搭建开发和测试环境,以及如何初始化CEMAPI,再继续这一部分的讨论之前,我们先要澄清几个概念。第一个是会话(Seesion),相信开发网络应用的朋友都不陌生,为了提高通讯效率降低通讯开销,有时候我们需要再目标与本地之间创建一个通

2009-03-08 23:07:00 5374 4

原创 CEMAPI实战攻略(一)——准备工作

CEMAPI实战攻略(一)By 吴春雷QQ:819543772EMAIL:[email protected] 一.准备工作1.       开发环境和设备平台a)         下载和安装微软已经发布了Windows Mobile 6.0 SDK和中文版的仿真器已,WM6.0的SDK和仿真器分成了标准版和专业版两个版本,由于两个版本都可以支持cemapi.lib,

2009-03-08 15:36:00 4407 5

原创 CMAPI实战攻略——写在前面的话(提纲)

Cemapi实战攻略——提纲by 吴春雷QQ:819543772EMail:[email protected]写在前面的话:         最近正在搞基于Windows Moblie 5.0平台的手机应用程序的开发,其中用到了Cemapi库来开发短信相关应用的模块。由于以前一直在搞业务逻辑方面的开发,因此对cemapi了解的比较少。再开发的过程中,不可避免的遇到了一些问题,也

2009-03-08 15:30:00 5799 7

原创 使用smartphone模拟器测试短信应用程序

smartphone模拟器是有号码的,向这个号码发送短信或拨打电话,本机就会收到相应的信息或电话,原文如下:When youre writing an application working in the emulator, you can send yourself an SMS. This will be really useful for testing applications th

2009-02-18 13:18:00 1039

原创 EasyAnalysisCE v1.1版本发布

感谢大家对EasyAnalysisCE图像分析库的反馈和支持,针对大家对软件的意见,新版本的EasyAnalysisCE做了一些修改,同时提供了一个完整的图像浏览器软件EasyImage(易览无余)作为该图像分析库的Demo程序。两个软件的下载地址:http://code.google.com/p/easyanalysisce/downloads/list EasyAnalysis v

2009-02-03 18:28:00 881

原创 拷贝构造函数

         在编写一个PocketPC应用程序的时候遇到一个奇怪的错误,当运行到某一函数中两个CString对象相赋值的时候,编译器就会抛出地址保护性异常,仔细地检查了一下这个函数,其中并没有直接使用指针对内存进行操作,也没有两个自定义对象之间采用等号的方式进行赋值的运算,对这个函数进行了一下完整的单步执行追踪,并没有发现该函数中有任何内存上的漏洞,因此可以断定内存漏洞并不是发生在该函数中的

2009-01-21 19:43:00 854

原创 VC++2008下响应WM_INITMENUPOPUP事件更改菜单项状态

         在使用VC++ 2008开发Windows Mobile程序的时候常常会需要更改菜单项的状态,比如更改Checked属性。通常的做法是在程序中加入如下代码:         CMenu *pMenu=this->GetMenu();         If(pMenu!=NULL){         pMenu->CheckMenuItem(菜单项ID,MF_CHE

2009-01-19 16:24:00 4410

原创 设置对话框背景颜色的方法

需要响应WM_ERASEBKGND消息,并加入如下代码: //当窗口背景更新时重新设置背景 CRect m_Rect; GetClientRect(&m_Rect); CBrush m_Brush; m_Brush.CreateSolidBrush(RGB(0,0,0)); pDC->FillRect(&m_Rect,&m_Brush); //re

2009-01-17 20:42:00 969

原创 一个比较有意思的判断两数大小的方法,不用逻辑比较运算符

设两数为a,b,二者最大值为max,则最大值为max=(( a + b ) + abs( a - b ) ) / 2 QQ:819543772EMail:[email protected]

2009-01-07 11:13:00 1499 1

原创 重新启动PPC设备(C#)

利用C#重新启动PPC设备的源代码public partial class Form1 : Form    {        [DllImport("coredll.dll")]        private extern static int KernelIoControl(int dwIoControlCode, IntPtr lpInBuf, int nInBufSi

2009-01-04 17:24:00 956

原创 判断委托操作结束的两种方法

众所周知,委托的执行过程类似于线程的执行(实际上本质就是线程),当委托被Invoke以后,程序会开启一个异步线程执行委托,当委托执行完毕时线程自动终止。那么当委托被调用以后,如何判断委托是否已经执行完毕呢?本文给出两种方式判断委托是否执行完毕。1.  根据返回值判断。当程序调用BeginInvoke启动委托的时候,BeginInvoke方法会返回一个IAsyncResult对象,该对象

2008-09-05 15:20:00 1358

原创 模块动态加载技术

 考察如下应用:   公司开发某种中间件产品,该产品的主要功能是从上位系统采集数据,并将采集到的数据做某种处理,然后下发到下级系统中。要求该产品要支持不同类型,不同数量,不同数据格式的上位系统,下发时统一发送符合某种规则或格式的数据流。此外,在增加或删除对某一上位模块支持的时候,无需从新编译该中间件产品。本文讨论不同类型,不同数量,不同数据格式的上位系统,在

2008-08-26 22:06:00 1347

转载 李开复:21世纪最需要的7种人才

我们都知道21世纪最有价值的是人才,是什么人才呢,就是我今天要演讲的题目。我想我这个演讲有一个很大的假设就是21世纪需要的人才与20世纪、19世纪有着很大的差别,因为21世纪有几个很重大的革命发生。在21世纪我们更多的工作是靠我们脑力的创造,是靠平等的竞争,已经没有国界的差别,世界被铲为平地,任何一个国家的人都可以和另外一个国家的人合作或者竞争,而他们都可以接触到、使用到、共享到同样的信息。不像过

2008-05-16 17:27:00 908

原创 C#中使用指针实现高效比较字符串的小技巧

        判断随机字符串之间的是否相等是程序设计中常用的技巧,再C++时代,我们可以通过把字符串中每四个字节转换为一个int对象,通过int对象一次比较四个字符,从而实现相对高效的字符串比较工作。那么,这个思路在C#中能否是实现呢?答案是肯定的。         在C#中使用上述思想,必须要解决两个问题,其一是在C#中使用指针,并且指针指向的托管变量位置不能被GC重新分配。其二,托管字符串在

2008-05-15 15:48:00 2541

原创 C#中const关键字的一点心得

 1.常成员的定义:在声明前就已经能够明确该成员取值,且该成员的值不会在程序运行的过程中发生变化。2.常成员的初始化和引用:直接在声明变量的位置初始化例如:public const =;Note:必须被设置,该值也可以是nullconst成员的引用方式为:       .3.讨论与C++不同,在C#中,常量不再归某一个对象所有,而是做为类的通用成员而存在。从引

2008-05-08 19:56:00 2303

转载 web项目经理手册-开发时间估算

 web项目经理手册-开发时间估算版权声明:如有转载请求,请注明出处:http://blog.csdn.net/yzhz  杨争          项目经理制定项目时间表的时候,需要估算每个任务所需的时间,其中开发任务中模块的分配和时间估算是其中最主要的部分。本篇专门就这部分作一个阐述。一、在分配模块和估算开发时间时,我们需要把握的原则和目标:1、保证项目整体的进度。2、有助于确保开发

2008-04-24 10:33:00 717

原创 在项目中使用设计模式思想——Abstract Factory、Factory Method、Singleton和Strategy模式的使用(上)

本文主要介绍本人再一个项目中应用设计模式思想的一些思路和心得,有使用不正确或不妥当的地方欢迎来信讨论。文章分为上、中、下三篇,上篇首先简单介绍了软件背景和基本业务流程,然后根据业务流程推导出策略模式中两个关键部件——可独立变化的“算法”和固定不变的“客户”调用结构的识别思路,以及给出了“算法”的接口模型。中篇主要介绍策略模式中另外一个重要部件——程序中“客户”调用结构的设计和代码。下篇主要介绍结合

2008-04-23 09:59:00 1237

原创 学习Builder和抽象工厂模式的一点心得

抽象工厂模式和Builder模式    最近要参加面试,于是乎又把设计模式拿出来过了一遍.由于每次在看到抽象工厂和Builder模式的时候总是有点迷糊,因此这次下了狠心,翻箱倒柜的找出英文版教材,中英对照,希望能把这两种模式搞清楚.    所有的创建型模式的本质目的都是为了更好的创建对象,抽象工厂和Builder模式也是如此,另外,两种模式还有一个共同的特点,就是将对象创建过程与使用过程相分离

2008-04-20 17:03:00 2179

原创 一种基于直方图均衡化的自动化立体仓库储位自动分配算法简述

 一种基于直方图均衡化的自动化立体仓库储位自动分配方案简述自动化立体仓库目前被广泛的应用于零售,生产制造等行业,当新的物品到达仓库的时候,如何选择合适的策略为其自动分配合适的储位一直以来都是WMS系统需要解决的重要问题之一.本文提出一种基于直方图均衡化的储位自动化分配方法,该算法设计简单清晰易于实现,为储位自动化问题提供一个新的思路.直方图均衡化的思想来自数字图象处理学.通过图像采集器

2008-04-18 17:56:00 2416

原创 使用Remoting技术

         在Wifi网络环境下,我们常用WebService作为服务程序构建分布式的应用程序系统,但是现在越来越多的应用在GPRS网络,因此WebService访问性能的问题渐渐体现出来.为了解决GPRS网络下快速构建分布式应用系统的问题,必须找到一种访问效率高于WebService,且开发效率高于直接采用Socket的方式.基于以上原因,我们尝试采用Remoting技术作为服务程序提供服

2008-04-17 18:09:00 1329

原创 小软件项目延期原因之我见

    吴春雷[email protected]           绝大多数软件公司走的都是由项目到产品的模式,也就是从做项目起家,积累经验,慢慢从做项目逐渐转型过渡到做产品.对于开发者来说能够一开始就加入到软件产品开发团队的幸运儿不多,绝大多也都像我一样整天围绕着项目在转.本人从参加工作到现在,除了参与过一个科研性质的项目(姑且称之为)以外,绝大多数时间都花在

2008-04-17 14:28:00 5668

原创 EasyAnalysis库的Pokect PC版本

EasyAnalysis库的Pokect PC版本,可以直接应用于Windows Moblie 和SmartPhone,使用方法与Windows版本相同,唯一不同的是该库的编译环境为VS2005.该源程序同样遵循GPL v3 协议开源,下载地址:http://code.google.com/p/easyanalysisce/downloads/list

2008-01-27 21:10:00 1085

原创 练习:利用颜色直方图匹配算法实现图像中目标的识别

源代码、训练和测试样本下载地址:http://www.5941ts.com/EasyAnalysis/demo/颜色直方图匹配.rar 源程序中用到EasyAnalysis图像分析库,库的源代码下载地址和使用说明见Blog中相关文章。习作算法比较简单,统计RGB分量256级灰度分布顺序排列组成768个元素的数组。从相同尺寸的照片中截取相同颜色分布的目标作为训练样本,分别统计每个训练

2007-11-01 22:05:00 5769 9

原创 一组角点检测模板和原理说明

源程序和说明文档下载地址:http://www.5941ts.com/EasyAnalysis/demo/角点检测.rar一组角点检测的模板 说明:通过EasyAnalysis库中的CBmp读出包含多个矩形和组合矩形的图像数据,CBmp所读出的图像矩阵与行的排列顺序与屏幕显示顺序相反,即图像在屏幕上显示的第一行为使用CBmp读出的图像矩阵的最后一行。像素值255代表最大

2007-10-28 23:24:00 3215

原创 第五节 CImage和CBmp(二)

 由于这个库主要用于VC MFC下开发应用,因此目前可以下载到版本只支持MFC开发。如果您需要标准Win32的库,可以在回复时留下您的邮箱,或跟我联系。       Email:[email protected]       QQ:819543772EasyAnalysis图像分析库测试版以及源代码下载地址:下载地址:http://www.5941ts.com/EasyAn

2007-10-25 00:28:00 2495 1

原创 第四节 CBmp和CImage的使用(一)

 由于这个库主要用于VC MFC下开发应用,因此目前可以下载到版本只支持MFC开发。如果您需要标准Win32的库,可以在回复时留下您的邮箱,或跟我联系。       Email:[email protected]       QQ:819543772EasyAnalysis图像分析库测试版以及源代码下载地址:下载地址:http://www.5941ts.com/Easy

2007-10-21 17:59:00 3117

原创 第三节 CFileOpt类

EasyAnalysis图像分析库测试版以及源代码下载地址:下载地址:http://www.5941ts.com/EasyAnalysis/EasyAnalysis.rarEasyAnalysis类中用到了大量的数据结构和宏定义,为了避免枯燥的罗列,只有在该数据结构被使用到的时候再作介绍,不再单独拿出一节来介绍。如果需要查看数据结和宏定义的具体声明,可以到PicStruct.h,M

2007-10-21 14:42:00 1014

原创 第二节 如何导入EasyAnalysis库

 由于这个库主要用于VC MFC下开发应用,因此目前可以下载到版本只支持MFC开发。如果您需要标准Win32的库,可以在回复时留下您的邮箱,或跟我联系。       Email:[email protected]       QQ:81954377258KBEasyAnalysis图像分析库测试版以及源代码下载地址:下载地址:http://www.5941ts.com/Ea

2007-10-20 20:39:00 1073 2

原创 第一节 EasyAnalysis图像分析库简介

  EasyAnalysis图像分析库测试版以及源代码下载地址:下载地址:http://www.5941ts.com/EasyAnalysis/EasyAnalysis.rar本人业余爱好不多,图像分析就是一项,平时喜欢照着论文写点小程序,写完就扔,自得其乐。既然是爱好,就希望能将业余时间尽量多的花费在学习图像分析方面的专业知识上,而不是浪费在对图像的读取、运算、变

2007-10-20 20:32:00 2079 2

原创 利用CBitmap将图像快速显示到屏幕上

正在做一个图像处理的类库,任意图像类型的文件利用类库读入后都存为一个固定的格式,保证程序的可扩展性。在编写的过程中需要将图像显示到屏幕上,由于自己写的将图像所有像素绘制到CDC上的程序速度总不是很理想,因此想到了一个很经典的类——CBitmap类。以下是程序中实现显示到场景的方法。其中pDC为类的成员变量,在拷贝构造函数中已经赋值。IMAGEBITS结构是自定义的图像结构体,包含4个BYTE成

2007-10-07 18:22:00 2908

原创 VC中几个小应用

虽然VC已经用了很长时间,可还有些不知道的小常识。一 更改鼠标形状 HCURSOR hCur=::LoadCursor(NULL,IDC_SIZEWE); SetCursor(hCur); IDC_SIZEWE:左右箭头IDC_ARROW:标准箭头IDC_WAIT:等待“等待”样式还可以通过BeginWaitCursor(),DoWaitCursor()来更改,屏幕中所有均

2007-10-05 17:57:00 837

原创 VS2005中更新其他线程访问界面线程控件的方法

     VS2005中,界面线程中的控件如果由其他线程进行更新时,编译器会自动抛出异常来避免这种不安全的跨线程访问方式。解决这个问题的一种方法是在界面线程中编写控件内容更新程序,并声明委托,利用Invoke方法进行实现。具体实现方法如下。     假设我们的From1中有一个TextBox空间,名为txtBox,From1在Load的时候启动一个线程thread,线程处理函数为threadP

2007-09-03 22:36:00 2087

原创 对图像进行二维傅立叶变换的意义

        众所周至,傅立叶变换可以将连续或离散的函数序列从空域映射到频域上,因此,傅立叶变换是信息与信号学中不可获缺的强大工具。但是,由于傅立叶变换在学习时是以一大堆公式的形式给出的,因此很多人(包括我在内)往往在做了一大堆习题掌握了变换的数学表示却对其变换后的物理意义一无所知,尤其是自学的时候更是晕头转向。首先,这篇文章不是教程,仅仅是记下一些体会与大家分享,如果我的理解有错误希望“老鸟”

2007-08-12 20:12:00 5689 6

原创 黑白BMP位图行补位和位图文件大小计算

     看到网上不少帖子介绍BMP图像行像素数需要是4的倍数,毫无疑问对于任何颜色数BMP位图,这个条件都是成立的,但是在黑白位图中,行像素数仅仅以4的倍数来补位,生成或读取的BMP图像却不一定正确。因为单色BMP图像一个二进制位表示一个像素,因此行像素数不足8的时候会被自动补充成为一个完整的字节,因此在读取单色的BMP图像时需要注意对补位部分的程序进行特殊处理。各颜色位数的BMP图像文件容量的

2007-07-29 17:15:00 2687 1

空空如也

空空如也

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

TA关注的人

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