我从今年4月开始学习C#,微软全面升级他的编程平台,微软的目的是统一整个windows下的编程标准,从而把更多的用户拉到windows编程上来.其中 C#比C++开发效率更高,更容易操作,同时也可以不太刻意去记复杂的windows API,不会出现像VB调用API时出现的类型转换等问题, 微软开发C#产品很明显就是抢占Java的市场,微软甚至有野性用C#来代替Java。
下面介绍一段在wm上的编写代码,希望对大家的学习有帮助:
手机系统必需维护的功能:收发信息,接打电话.这是现代对手机系统最基本的定义,其中信息又分为:短信和彩信,短信就不用多说了,介绍下彩信的链接方法:现在国内只有GPRS,但链接方式又分为CMNET和CMWAP.既然彩信是很常用的功能,使用频率又非常高.那么用GPRS链接CMNET或CMWAP就显得重要了,既要代码简单
易用性强,又要稳定
效率高.下面是在windows mobile中用C#实现的cmnet链接方法:主要的思路是:判断connInfo.guidDestNet = destGuid,导入cellcore.dll使用它的三个方法,最后异常处理Coredll.dll,GetLastError.
public bool Connectcmnetmethod(Guid destGuid, bool exclusive, bool mode)
connInfo.cbSize = (uint)Marshal.SizeOf(connInfo);
connInfo.dwParams = 0x1;//CONNMGR_PARAM_GUIDDESTNET;
connInfo.dwPriority = 0x08000;
connInfo.dwFlags = 0x1 | 0x2 | 0x4 | 0x8;//0;
connInfo.bExclusive = 0;// exclusive;
connInfo.bDisabled = 0;// false;
connInfo.guidDestNet = destGuid;
connInfo.hWnd = this.Handle;
result = ConnMgrEstablishConnectionSync(ref connInfo, ref hConnection, 10000, out dwStatus);
if (result != 0) MessageBox.Show(result.ToString("X"), dwStatus.ToString("X"));
public struct CONNMGR_CONNECTIONINFO
public uint ulMaxConnLatency;
[DllImport("cellcore.dll", EntryPoint = "ConnMgrEstablishConnectionSync", SetLastError = true)]
internal static extern int ConnMgrEstablishConnectionSync(ref CONNMGR_CONNECTIONINFO pConnInfo, ref IntPtr phConnection, int dwTimeout, out int dwStatus);
[DllImport("cellcore.dll", EntryPoint = "ConnMgrEstablishConnection", SetLastError = true)]
internal static extern int ConnMgrEstablishConnection(ref CONNMGR_CONNECTIONINFO pConnInfo, ref IntPtr phConnection);
[DllImport("cellcore.dll", EntryPoint = "ConnMgrReleaseConnection", SetLastError = true)]
internal static extern int ConnMgrReleaseConnection(IntPtr hConnection, int lCache);
[DllImport("coredll.dll")]
private
static extern int CloseHandle(IntPtr hObject);
[DllImport("Coredll.dll", EntryPoint = "GetLastError", SetLastError = true)]
internal static extern int GetLastError();
private
void menuItem1_Click(object sender, EventArgs e)
MessageBox.Show(Connect(new Guid("7022E968-5A97-4051-BC1C-C578E2FBA5D9"), false, true).ToString());
做windows mobile C#程序员,就一定会接触到Framework了(和C/C++等程序设计语言不同,在使用C#语言开发应用程序时,编写的源代码首先被.NET编译成中间代码(MSIL),MSIL类似于过去的汇编语言,在运行应用程序时,中间代码又会被运行时环境(CLR)作即时编译(JIT),被即时编译成本地计算机执行的机器指令,以加快程序的运行速度,这样做的好处是无论是使用哪一种程序设计语言最终会编译成为统一的中间代码,而中间代码可以运行在不同操作系统平台上,只要这个操作系统平台有这个运行时环境;除此之外,作为一种代码重用性很高的面向对象程序设计语言,程序员不需要所有的元素都要自己编写,而是使用已经开发好的组件类。
C#在windows mobile上的这种架构,可以说给手机移动平台指明了方向,,现在智能手机市场发展迅速,由于手机性能不断提高,成本越来越低,智能手机已经成为大众的主流,那智能手机系统平台,必然是市场的重点,所有的移动业务厂商都会把智能手机平台看作未来的发展方向,但是C#在windows mobile表现仍有很多问题,比如:手机资源消耗大,要安装移动版的Framework程序。
从市场来看,windows mobile的占有率很低,撰写手机C#代码很难有很多的工作岗位,写的软件业不能有更多的销售可能。
|