|
Catagory
NewReply
Links
Statistics
Articles:111
Replies:17
|
evc如何调用和修改系统时间
我建立了六个编辑框,想在每个编辑框中显示对应的年,月,日,时,分,秒 现在,我的做法如下, 以修改月份的为例: void CParamSet1::OnSetfocusEdit16() //这个是用来修改月份的编辑框,当单击该编辑框时,即弹出输入数据对话框 另外,若要实时显示时间信息,还要在定时器中添加: GetLocalTime(&time);//这里,time为我建立的另一个SYSTEMTIME变量,m_Year等也是我建立的整形变量 最后,就要在初始化函数OnInitDialog中打开定时器SetTimer(1,500,NULL);//我的设置时0.5秒刷新一次 wince上数据库:sqlce和sqlite最近由于项目需要, 要在wince4.2, wince5.0, mobile三种机型上面做大数据量的查询,初步估计在50W-500W条记录之间。 hr = CoCreateInstance(CLSID_SQLSERVERCE_3_0, 0, CLSCTX_INPROC_SERVER, if (FAILED(hr)) dbprop[0].dwPropertyID = DBPROP_INIT_DATASOURCE; if (dbprop[0].vValue.bstrVal == NULL) dbpropset[0].guidPropertySet = DBPROPSET_DBINIT; //#define DBINITCONSTANTS hr = pIDBInitialize-> QueryInterface(IID_IDBProperties,(void**)&pIDBProperties); if (FAILED(hr)) hr = pIDBProperties-> SetProperties(sizeof(dbpropset)/sizeof(dbpropset[0]),dbpropset); if (FAILED(hr)) hr = pIDBInitialize-> Initialize(); if (FAILED(hr)) hr = pIDBProperties-> QueryInterface(IID_IDBCreateSession,(void**)&pIDBCreateSession); if (FAILED(hr)) 记得网上有采用ADO的方式操作sqlce,但听闻ms不再更新,而采用oledb方式,只是比较麻烦一点了,这样也有助于我们了解一下sqlce的一些接口。 二. 在wince上使用sqlite数据库: 2. 在 http://softvoile.com/development/CppSQLite3U/下载 高人用C++封装的sqlite的类,(基于上面生成的sqlite.lib)
CppSQLite3DB db; //新建表 db.close(); 三. 后记 SQLite3 for WinCE在WinCE,Mobile上,对SQLite的开发,目前还是以.net compact framework的封装居多. 在 http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers 可找到各种语言对 SQLite 的封装. 下面将介绍如何在EVC下使用SQLite. 2> 编译出所需的 SQLite DLL. a> 在 http://sqlite-wince.sourceforge.net/ 中下载 SQLite for Windows CE 的DLL 源代码. b). 打开eVC新建一个“WCE Dynamic-Link Library”工程,命名为:sqlite3 c). 在接下来的对话框中选择"An empty Windows CE DLL project",点击 FINISH,之后再点击 OK d). 将源码中所有的 *.c *.h *.def 复制到工程文件夹下 e). 在 Source Files 中添加除shell.c和tclsqlite.c这两个文件以外所有 *.c 的SQLite源文件文件 f). 在 Header Files 中添加所有 *.h 的SQLite源文件文件 g). 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中 h). 在eVC中选好你要编译的平台,例如“Win32(WCE ARMV4I) Release” i). 好了,开始编译,Build(F7)一下 3> 编译出DLL后,需要使用C++对DLL中的功能进行封装.有如下资源可参考: a> http://www.codeproject.com/KB/database/CppSQLite.aspx b> http://www.adp-gmbh.ch/sqlite/wrapper.html 如上 a,b 资源,尽管已对 SQLite Dll 中的功能进行封装,然而 WinCE,Mobile上使用的是UNICODE编码,而 a,b 却并未支持UNICODE.所以真正要用到的是 a 资源中的 unicode 版本,如下: http://softvoile.com/development/CppSQLite3U/
主要代码如下: #define FILE_DB_NAME TEXT("unitech.db")
//获取程序当前路径 void GetCurrentDirectory(CString &szPath) { wchar_t pBuf[256]; GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t)); szPath=pBuf; szPath = szPath.Left(szPath.ReverseFind('\\')+1); } void CDemo2Dlg::OnButton1() { CString strDbPath; GetCurrentDirectory(strDbPath); strDbPath += FILE_DB_NAME; CppSQLite3DB db; try { //打开或新建一个数据库 db.open(strDbPath); //判断表名是否存在 if(db.tableExists(L"tblTest")) { AfxMessageBox(L"Table: tblTest is existed!"); } else //不存在 { AfxMessageBox(L"Table: tblTest not existed!"); //新建表 db.execDML(L"create table tblTest(empno varchar(20), empname varchar(20))"); } //插入一笔记录 db.execDML(L"insert into tblTest values('编号', '姓名')"); //插入一笔记录 db.execDML(L"insert into tblTest values('精瑞电脑', 'Answer')"); //删除一笔记录 db.execDML(L"delete from tblTest where empno='编号'"); //插入10笔记录(使用事务) TCHAR buf[256]; db.execDML(L"begin transaction;"); for (int i = 0; i < 10; i++) { memset(buf, 0, sizeof(buf)); wsprintf(buf, L"insert into tblTest values ('no%d', 'name%d');", i, i); db.execDML(buf); } db.execDML(L"commit transaction;"); //更新一笔记录 db.execDML(L"update tblTest set empname='answer' where empno='no1'"); //获取总笔数 int count = db.execScalar(L"select count(*) from tblTest;"); TCHAR szCount[50]; memset(szCount, 0, sizeof(szCount)); wsprintf(szCount, L"Count:%d", count); AfxMessageBox(szCount); //获取每一笔 CppSQLite3Query q = db.execQuery(L"select * from tblTest"); while (!q.eof()) { AfxMessageBox(q.fieldValue(0)); q.nextRow(); } q.finalize(); db.close(); AfxMessageBox(L"OK"); } catch(CppSQLite3Exception ex) { AfxMessageBox(ex.errorMessage()); } }
5> 成功完成,Enjoy it~~~ 6> 下载: b> CppSQLite3U For WinCE Source c> Demo Source d> Demo Exe 7> 推荐一个SQLite的可视化工具: SQLiteSpy: http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index 手机操作系统与浏览器手机操作系统与台式机浏览器是目前IT最热门的两大软件基础平台。 1.手机操作系统 Android Windows phone Apple iOS Meego Symbian 2.浏览器 Chrome Firefox IE Safari Opera 立体大巴 Google TV A70 Android这款机子现在官方规格还没有完全发布,据说处理器,内存和ROM都是1G,屏幕是4.3寸的,看图片感觉是3.5mm的耳机接口。 Android十大热门名词解释
android手机这个全新的产品,大家都还处在一个认识和了解的阶段,很多普通用户对于大家常提到的一些专业词语都不是很理解,完全不知道它们表达的是什么意思,以下是android手机最常提到的10个词语,相信大家看后一定会对android手机有了全新的理解和认识。 1:Android手机 android系统的手机已在市场上销售的非常火爆,但是很多普通用户在听到android手机时还都是一头雾水,不知道这是什么手机。其实简单的说,android是一个新兴的智能手机操作系统,该原生系统是由谷歌开发研制的,我们将搭载了android智能操作系统的手机统称为android手机。目前很多手机厂商都在生产搭载了android系统的智能手机,它们包括HTC,摩托罗拉,三星,索爱,LG,华为,Acer,OPPO,魅族等多家国内外知名厂商。 2:电子市场(Android Market) Android电子市场(Android Market)是Google为Android设备开发的在线应用程序商店。它和苹果的App Store类似,用户可以在此浏览、下载、安装使用到成千上万的各式应用程序,有软件,有游戏,有免费程序,也有收费程序。与微软和苹果应用市场不同,Android电子市场可以为用户提供多样化的内容,既有来自各大媒体公司的内容,也有来自业余个人开发者的程序。 3:Root权限 Root权限可以跟我们在windows系统下的administrator权限理解成一个概念 。root是android系统中的超级管理员用户帐户,该帐户拥有整个系统最高权利,可以在系统中进行任何操作。为了防止软件更改系统文件,android系统隐藏了root权限,但是,我们平时修改一些系统文件,或是某些软件的操作都会用到Root权限,我们的android手机刷机安装系统时,也是需要有Root权限的,获取并开启root权限后,我们就能随意进行任何操作了。 4:刷机 刷机是手机方面的专业术语,是指通过一定的方法更改或替换了手机原版系统中固有的一些语言、图片、铃声和软件版本或者操作系统,可以使手机功能更加完善。刷机可以是官方的,也可以是非官方的。简单的说,android手机的刷机,就相当于给它重装一下系统,这和我们常见的电脑重装系统类似。 5:APK APK是Android Package的缩写,即Android安装包。是android手机程序的文件格式,这和诺基亚手机程序是sisx,sis,jar格式类似,都是安装包文件的一个格式,将apk格式的程序传到手机中,通过文件管理软件,点击该格式的文件即可安装,也可使用数据线将手机和电脑连接,在电脑上通过一个安装辅助程序进行安装。 6:桌面widget Widget简单的直译就是构件,小部件,小工具的意思。在android手机中,当你在桌面空白处长按几秒钟,就会弹出一个对话框,其中就有让你添加桌面小工具的选项,这个就是添加的桌面widget。用过windows vista或是windows7的用户对桌面小工具应该都不陌生,在电脑上也有在桌面添加一些小部件的功能,android系统中的桌面widget也和它们类似,通过在桌面上添加widget,能很方便快捷的进行一些查阅和操作。 7:Recovery Recovery翻译过来的意思就是恢复,顾名思义,这是手机上的一个恢复模式。通过这个recovery,用户可以实现安装系统(就是所谓的刷机),清空手机各种数据,为内存卡分区,备份和还原等等很多功能。它类似于电脑上的Ghost一键恢复,给电脑装过系统的朋友可能都知道,电脑出了问题,或是想换个新系统,最简单的办法的就是用Ghost来重装系统,只需简单的用鼠标点几下就完成了。Android手机上的recovery模式也是如此。 8:wipe Wipe翻译过来的意思就是抹去,擦除等,在recovery模式下有个wipe选项,它的功能就是清除手机中的各种数据,这和恢复出厂值差不多。我们最常用到wipe是在刷机之前,大家可能会看到需要WIPE的提示,是指刷机前清空数据,注意wipe前备份一下手机中重要的东西哦。 9:ROM ROM是英文Read Only Memory简写,通俗的来讲ROM就是android手机的操作系统,类似于电脑的操作系统,比如Windows xp,Windows7等等。我们平时说给电脑重装系统,拿个系统光盘或是镜像文件重新安装一下就好了。而android手机上刷机也是这个道理,将ROM包通过刷机,重新写入到手机中,ROM就是android手机上的系统包。 10:WIFI Android手机的强大之处在于它的网络功能,拿到android手机,你可能会发现它无时无刻都在连接着网络,而且在android手机上有着很多功能强大的网络软件,仅仅依靠手机的移动网络是不够的,android手机的wifi网络可以很好的弥补这些,而且功能十分强大。Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。通俗的讲WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。 Google App Inventor for Android Android VS. Chrome
Google now offers two separate operating systems: Android OS – used by smartphones out there, ported by companies onto a bunch of other consumer electronic products including netbooks Chrome OS – a browser-based operating system, which essentially lives within the browser. Oh, and people are starting to think of placing it on netbooks as well. |
