小峰

读论文,读草案,想毕业
随笔 - 85, 评论 - 513, 引用 - 19

导航

每月存档

最新留言

广告

【第1页/共7页,95条】
首页
前页
1
2005年04月02日

经常会有这样的要求,比如,开发一个放电影的软件或是显示歌词的Mp3播放器,在显示过程中,要求背光常开。
在Pocket PC代码中,可以使用SetPowerRequirement和ReleasePowerRequirement函数来为背光设定新的电源管理的要求。注意,必须包括"pm.h",它的用法比较简单,下面是我写的一个函数(EVC )。其中D0表示总是保持电源。
void TurnBackLight(BOOL isOn)
{
 static HANDLE m_hPower = NULL;
    if (isOn)
    {
        if (!m_hPower)
        {
            m_hPower = SetPowerRequirement(TEXT("BKL1:"), D0, POWER_NAME, NULL, 0);
        }
    }
    else
    {
        if (m_hPower)
        {
            ReleasePowerRequirement(m_hPower);
        }
        m_hPower = NULL;
    }
}

这段代码在SmartPhone并不能使用,即使是SetPowerRequirement能返回一个句柄。我目前采用了修改系统设置的办法,先记下注册表“HKEY_CURRENT_USER\"ControlPanel\Backlight"的值,并修改为99999,当关闭时,再恢复。但是这个可能不是最佳的方法,因为

posted on 2005-04-02 18:11:00 by zjf  评论(0) 阅读(435)

 
2005年02月28日

大学四年应这样度过

其中提到Diyinside网站

posted on 2005-02-28 18:40:00 by zjf  评论(18) 阅读(3051)

 
2005年02月26日

在PPC上,Mp3格式已经有很多的开源代码或控件可以进行播放,而播放WMA格式的代码就几乎没有,因为WMA格式归微软所有,而且还有三种格式。除了ffmpeg可以播放WMA1,WMA2格式,WMA3格式就没有除媒体播放器外的控件能够播放。虽然fmod控件(http://www.fmod.org)吹嘘它能播放,但是经过测试,它最后也不能绕过媒体播放器控件而单独播放。在它的头文件也可以看出来,因为它有一个错误定义就是没有安装Windows Media Player。
在PC上开发过媒体播放器的人一定知道,在PC使用Windows Media Player控件做这样的事情只要将这个ActiveX控件一拖,剩下的事情是多么的简单!因为在Windows上至少是集成了一个6.X版本的Media Player,即使再升级媒体播放器,实际上原来的媒体播放器的ActiveX还是存在的。所以,只要使用最低版本的媒体播放器,其开发出来的程序就可以运行不同版本的Windows平台之上。
但是在PPC上,就完全不同了,PPC 2002和PPC2003使用的是两个不同版本的媒体播放器,GUID完全不一样,更可恶的是,鲜有资料能知道这两个控件的GUID。此外,我们很难指望开发一个程序,在不作任何手脚的前提下,能在顺利得跑在不同的PPC版上,而且别人也不太可能为了运行你开发的程序而再安装一个媒体播放器。
微软有一个Windows Media Player For Pocket IE控件(Wince 3.0)是专门用于Pocket IE来显示和播放媒体文件,虽然它是For wince3.0,但是它在PPC上一样工作的很好。大家知道,要想在IE显示的网页中来嵌入一个媒体播放器,那就必须在HTML中将这个GUID放在HTML网页中,因此,问题就得以解决,也就是在该机器安装该控件,然后用此GUID来加载该控件,就可以实现在PPC上开发播放WMA文件的程序。Pocket Player就是利用这种办法解决播放WMA问题。
最后要注意的是,在PPC上只能播放没有版权保护的WMA。

 

posted on 2005-02-26 03:02:00 by zjf  评论(4) 阅读(995)

 
2005年02月16日

引自BrightHand的消息

http://www.brighthand.com/article/Gartner_Results_04?site=PPC

2004年Windows Mobile的市场占有率从2003年的37.7%上升到43%,超过Palm Os. 在2003年,Palm Os市场占有率有50%,而2004年下滑至36.3%。

 

posted on 2005-02-16 14:41:00 by zjf  评论(5) 阅读(723)

 
2005年02月13日

本想找一下在EVC中的转义URL字符的函数的,很高兴能在include 目录下发现shlwapi.h,以为有这个函数了,打开文件,的确也看到urlescape函数,但是在link的时候却不知道和哪个库相连接,在lib文件中也没有shlwapi.lib,真是纳闷。

但是发现了CoInternetParseUrl这样的helper API,在说明中,它是最后会调用urlescape函数的。现在还没有试过,这样是不是可行。

EVC的include 目录还有一些xml操纵的文件,也算是一个惊奇的发现吧!

posted on 2005-02-13 00:35:00 by zjf  评论(0) 阅读(407)

 
2005年01月19日

真没有想到,在开发Smartphone的程序时,微软居然留了一个空API,GetOpenFileName是有这样的API的,但是内部没有实现,每次都显示成功,就是不弹出Open对话框,不仅如此,一些Common Dialog都没有实现。唯一的选择就是自己写这样的对话框,用查找文件这样的API来写,也算是比较烦琐吧。因此,网上还有卖这样的SDK的,一个要29美元。更加气人的是,Smartphone上搞一个菜单极其的麻烦,连资源文件都经常自己手写。更不要说,没有MFC了。那么唯一值得我们高兴的是:看来还有很多的余地可以挖掘呀!

posted on 2005-01-19 02:15:00 by zjf  评论(4) 阅读(948)

 
2005年01月13日

和.NET CF比起来,EVC有很多爽的地方,但是也有很多不爽的地方,特别是其中要争对每个CPU类型编译一次,就给发布程序带来很多的麻烦。今天遇到更麻烦的事情,就是在PPC2003 SDK+EVC 4.0编译的程序居然不能在PPC2002上运行,一开始,我很简单的认识,既然是向下兼容的,大不了下一个PPC2002的SDK再编译一次就结束了,没有想到的是居然PPC2002的SDK不能和EVC 4.0融合,只能和EVC 3.0进行配合,要是这样的话,难道我为了开发一个PPC的软件,要安装PPC2002-2003的SDK及EVC 3.0-4.0的全套东西,再加上Visual Studio 6.0,加上Visual Studio.net2003,典型的微软开发全集呀!

还好MSDN给出一个微软官方不支持的方案(Using eVC 4 to Build for Windows CE 3.0),可以使用EVC 4来编译2002的程序,但是不能在上面进行调试。这也真是有点想不通,为什么要换一个SDK还要换一个编译器呢?

posted on 2005-01-13 21:43:00 by zjf  评论(9) 阅读(1221)

 
2005年01月09日

虽然在Evc开发中,VC中很多东西可以使用拿来主义,大部分都可以直接用,甚至是可以先做一个MFC的应用,再移植到EVC上(Code Project上就有相应的MFC wrapper),连部分的Stl库都可以直接用,但是还是有一些东西不太一样。
前几天在开发一个应用的时候,想改变一个Edit控件的背景色,正常情况下,只用处理WM_CTLCOLOREDIT消息就可以了,处理了WM_CTLCOLOREDIT消息的应用在PC跑得好好的,但是在PPC模拟器和PPC上,当用SetWindowText写入文本时,就会出现闪烁的过程,PPC会先会用系统颜色填充,再处理WM_CTLCOLOREDIT消息,由于PPC速度较慢,所以就会出现闪烁。因此,最后是处理WM_PAINT函数,自已来画整个背景。
我得到的经验有以下几点:
1. 开发Evc程序可以先用VC6.0先开发一个框架,能加快开发速度,而不能一开始就在EVC上开发,那个调试环境实在是太慢了
2. 一些细节的地方可能会不一样
3. EVC开发起来的确是比.NET CF要爽一些,至少不用到处找示例。.NET CF开发一些简单的应用还可以,但是开发复杂的东西,头就很大了,象我写的一个用到richedit的程序(在ppc对应的为richink控件),Load rtf的代码写了N久还是没有能写出来,而msdn上却有Evc的示例代码。

posted on 2005-01-09 23:57:00 by zjf  评论(2) 阅读(1093)

 
2005年01月04日

Sql server2000支持的全文检索中的freettexttable函数及constrainstable都是可以列出有相应的词的行及Rank,但是这有一个很大的不足,它们都是放在from子句中,例如:
SELECT RANK FROM    FREETEXTTABLE(Categories, Description,  'sweetest candy bread and dry meat')

如果要查找某一个条件的有相应词的行,必须在整个表中查完之后再和其它表相连接,它的速度将会比上一句还要慢,在我这里的实验中,一个有30万条记录的表(平均字段大约有300个单词),耗时大约为5s左右,实在是很慢

posted on 2005-01-04 17:06:00 by zjf  评论(4) 阅读(1029)

 
2004年12月02日

原来一直使用自已定义的Sqlconnection,使用构造函数直接生成一个sqlconnection对象,并直接打开,使用Close函数进行关闭,一直觉得很好用。我也注意到了,他如果不按new和Close成立出现的话,会发现连接泄露。今天在压力测试的时候,却发现另一个问题,如果不停的刷新,就会有可能只出现了一次打开后,不会Close,并再次打开的问题。

今天将这个类改写了一下,实现了IDisposable接口,并增加Dispose函数,这个函数在using的范围外,会自动调用Dispose函数来析构自己的,因此,在这个函数中执行Close是最好不过了。using有点象try...catch...finally中的finally,但是代价比它要小。

posted on 2004-12-02 01:50:00 by zjf  评论(1) 阅读(574)

 
2004年11月11日
今天遇到一个关于ListBox的Bug,Bug如下:为了实现ListBox中的数据能进行上移下移,增加了一个“上移”和“下移”按钮,点击按钮时,得到ListBox的SelectIndex,然后进行上移下移等操作,但是很奇怪的是,每次得到的SelectIndex都是0,令人摸不着头脑。而其它几个用于相同功能的ListBox都没有这样的问题,最后才发现,数据绑定时,所有的Item的Key都是相同的,所以导致这样的错误,也就是ListBox每次都会是用Key来定位Item的Index,而不是直接定位Index,想想也应该是正常的,因为当显示为Html时,点击按钮,Post回去的值应该是Item的Value和Key,而不是Index。

posted on 2004-11-11 03:00:00 by zjf  评论(7) 阅读(1066)

 
2004年11月06日

听说微软招聘中经常考算24点的方法,在清华BBS的Career_ms版上有人贴出了完全算法:

(sign(a)!+sign(b)!+sign(c)!+sign(d)!)!=24
((a')!+(b')!+(c')!+(d')!)!=24

其中sign函数是求符号的函数,'是求导,常数的导数为零

posted on 2004-11-06 17:09:00 by zjf  评论(68) 阅读(6264)

 
2004年10月28日

RegularExpressionValidator中的关于身份证的正则表达式定义是18位数字或15位数字,实际上,有相当一部分身份证最后一位是x的,在这样的情况,正则表达式需要进行一定的修改,最简单的方式改为如下就可以了:

(\d{17}[\dx])|\d{15}

身份证严格的检验见C#实现的18位身份证格式验证算法,更加严格的检验还需要实现15位身份证升级到18位身份证的代码,并进行生日和身份证数据的比对及合法性检查。

posted on 2004-10-28 12:43:00 by zjf  评论(5) 阅读(1533)

 
2004年10月03日

在ASP中,经常会用到单值的输出,比如<%=request("comeurl")%>,在等号后面就是一个赋值,在ASP.NET中,我以前都比较倾向于在这个位置放一个Label控件或是Literal控件,实际上,ASP.NET也有这样的绑定过程,它可以类似于如下实现:

用code-behind方式时,在页面代码中,在需要的地方写入<%# GoodName %>,在页面类中写入protected string GoodName;在Page_Load事件中,如下方式进行绑定:

private void Page_Load(object sender, System.EventArgs e)
  {
            if (!IsPostBack )
            {
         GoodName = “hello!“;
                    DataBind();
            }
  }

其中的DataBind()方式是Page类中的方法,当然,其中的GoodName使用属性会更好一点。

用这种方法可以实现页面的Title的随页内数据的不同而变化,因为Html页面的Title属性是在Form表单之外的,此外还有一个好处就是,可以对这个变量一次赋值,而在页面中到处使用,不用对多个控件进行相同的赋值。<%# GoodName %><%# GoodName %>

posted on 2004-10-03 21:30:00 by zjf  评论(8) 阅读(1097)

 
2004年09月28日
RegularExpressionValidator控件的正则表达式有一种例子就是身份证,很简单,就是以15位数字或是18位数字,但在实际中,有些人的身份证是17位数字加一位x,这样就通不过验证了。昨天在微软工程院的校园招聘宣讲会上,有人就提这样的问题,主持人还居然说了我的名字,尴尬。

posted on 2004-09-28 09:11:00 by zjf  评论(13) 阅读(1964)

 
【第1页/共7页,95条】
首页
前页
1

Powered by: Joycode.MVC引擎 0.5.1.8