2012年12月28日
摘要: 最近一直在学习C#的Delegate机制,总结在这里,以供大家参考。参考资料:http://www.akadia.com/services/dotnet_delegates_and_events.html自己在CSDN的讨论:http://bbs.csdn.net/topics/390334457一、基本理念在事件处理模型中,Delegate充当产生事件的对象和处理事件的方法之间的媒介。代理定义了控件的事件处理程序的签名,事件代理是广播式的,代理包含了方法引用列表。把delegate理解为函数指针或者对函数的引用,而这种引用关系能够触发多个函数的调用。在调用代理时,编译器不需要知道实际调用的是 阅读全文
posted @ 2012-12-28 20:20 Jiang, X. 阅读(576) 评论(0) 推荐(0) 编辑
2012年12月18日
摘要: 一直准备学一点Linux的东西,一直没有付诸行动,这个周末准备安装一下,做了将近半年的android开发,准备学一点关于框架和源码的东西。。。安装之前也百度谷歌了很多次,也看了网上不少的资料,总结一点,就是对于像我这种入门级的人来说,还是不够明确,结合网上的资料,本人在此再做完善一下,希望对后来之人有所帮助,于我也算是一种学习吧。首先是安装ubuntu,这个在ubuntu官方网站http://www.ubuntu.org.cn/download/有 链接下载,本人是安在win7上面的,ubuntu版本是11.04。双系统,下载下来之后是.iso文件格式,用虚拟光驱加载,双击里面的 wubi.e 阅读全文
posted @ 2012-12-18 20:28 Jiang, X. 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1. Download eclipse, jre, cdt1.1 Download Eclipse here: http://www.eclipse.org/1.2 Download JRE here: http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.htmlI got the jre-7u10-linux-i586.tar.gz1.3 Download CDT here: http://www.eclipse.org/cdt/2. Extract all compressed fi. 阅读全文
posted @ 2012-12-18 20:06 Jiang, X. 阅读(298) 评论(0) 推荐(0) 编辑
2012年12月17日
摘要: 打开eclipse安装程序目录将eclipse.ini由-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813-showsplashorg.eclipse.platform--launcher.defaultActionopenFile-vmargs-Xms40m-Xmx512m-XX:MaxPermSize=256m-Dsun 阅读全文
posted @ 2012-12-17 21:56 Jiang, X. 阅读(1979) 评论(0) 推荐(0) 编辑
摘要: ——工欲善其事必先利其器引言本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下:1、环境搭建1.1、JDK安装1.2、Eclipse安装1.3、Android SDK安装1.4、ADT安装1.5、创建AVD2、HelloWorld1、环境搭建1.1、JDK安装如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下: 阅读全文
posted @ 2012-12-17 21:04 Jiang, X. 阅读(141) 评论(0) 推荐(0) 编辑
2012年11月16日
摘要: PPI通信功能的实现实现PPI的关键是帧格式。由于PPI协议并不公开,我们只能从网上查找资料并自己动手实验,确定某几个功能的帧格式。这也是我们只实现了9个函数的原因。本文的均以十六进制表示数据,但一个帧中的字节流的下标是十进制。读V区的数据时,如下表所示:注意:PPI通信时,先发送低地址上的字节。例如,数据个数为1时,上表第24、25字节是01 00,而不是00 01。但地址偏移量却是高位在前。将以上字节流发送给PLC后,PLC将首先返送一个字节E5,表示接收成功,等待主机确认。这时主机应该发送确认帧:10, 02, 00, 5C, 5E, 16注意:收到E5后 ,主机应当延时一定时间后再发送 阅读全文
posted @ 2012-11-16 15:29 Jiang, X. 阅读(712) 评论(0) 推荐(0) 编辑
摘要: #region是一个分块预处理命令,它主要用于编辑代码的分段,在编译时会被自动删除。 #region使你可以在使用VS代码编辑器的大纲显示功能时指定可展开或折叠的代码块。 例如:#regionMyClassdefinitionpublicclassMyClass{staticvoidMain(){}}#endregion 备注:#region块必须以#endregion指令终止。 #region块不能与#if块重叠。但是,可以将#region块嵌套在#if块内,或将#if块嵌套在#region块内。 阅读全文
posted @ 2012-11-16 13:58 Jiang, X. 阅读(6729) 评论(0) 推荐(0) 编辑
2012年11月14日
摘要: 首先准备个ICO图标。例如:myappico.ico用记事本新建个文件里面就写一行:IDI_ICON1 ICON DISCARDABLE "myappico.ico"保存改名为 myapp.rc并把它和你的图标myappico.ico一起复制到你的QT工程项目的目录。用记事本打开你的QT工程文件(如 "myapp.pro" ),在里面最后新添一行RC_FILE = myapp.rc保存,编译你的工程,嘿嘿。。成功了吧。。。 阅读全文
posted @ 2012-11-14 11:59 Jiang, X. 阅读(231) 评论(0) 推荐(0) 编辑
2012年11月6日
摘要: Open terminal and enter:cat /etc/*releaseit outputs:DISTRIB_ID=UbuntuDISTRIB_RELEASE=12.04DISTRIB_CODENAME=preciseDISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"Also, we can enter:uname -aThen we get:Linux johnny-Rev-1-0 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i38 阅读全文
posted @ 2012-11-06 09:08 Jiang, X. 阅读(489) 评论(0) 推荐(0) 编辑
2012年10月31日
摘要: 1,确保电脑装有刷机驱动,可以去三星官网下载KIES安装以获得驱动,同时下载刷机工具包。2,驱动安装后,重启电脑并关闭手机。3,同时按住手机的音量减小键和HOME键(屏幕下方最大的那个),再按住开机不放一到两秒即可进入刷机模式。4,数据线连接手机至电脑。运行ODIN,设置选项上方显示一个黄色COM端口代表驱动正常,如果没有请检查驱动。5,ODIN平台默认设置选项不要动,右边添加刷机资料(其实就是选择一些文件) OPS: BENI_v1.0.ops BOOT: APBOOT_S5670ZCKF1_CL1027785_REV01_user_low_true.tar.md5 PHONE:MOD... 阅读全文
posted @ 2012-10-31 20:23 Jiang, X. 阅读(677) 评论(0) 推荐(0) 编辑
2012年10月30日
摘要: 这是网上的一段源码,能够将一个汉语字符串转换成拼音的首字母。 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 static char convert(wchar_t n); 6 static bool In(wchar_t start, wchar_t end, wchar_t code); 7 8 int main(int argc, char* argv[]) ... 阅读全文
posted @ 2012-10-30 19:22 Jiang, X. 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 没想到使用u盘安装Ubuntu竟然这么简单,只需要下载Universal-USB-Installer-1.9.1.4,选择操作系统版本及镜像就能够完成。傻瓜式操作不需要解释。工具可以在这里下载,是我自己上传的。http://download.csdn.net/detail/johnpher/4701790 阅读全文
posted @ 2012-10-30 12:50 Jiang, X. 阅读(182) 评论(0) 推荐(0) 编辑
2012年10月29日
摘要: I launched Ubuntu on my computer with Windows XP, I find myself really enjoy it.I will keep some websites here to learn it:Ubuntu Linux Resources: http://www.psychocats.net/ubuntu/index 阅读全文
posted @ 2012-10-29 23:40 Jiang, X. 阅读(110) 评论(0) 推荐(0) 编辑
2012年10月27日
摘要: 上次的一个工程打包后解压,发现打开vs时出现警告,工程打开之后文件都还在,但是无法打开类视图,添加头文件也无法识别。找到以前的工程后发现原工程没有问题,是因为sln文件在压缩时受到了损坏。 阅读全文
posted @ 2012-10-27 12:56 Jiang, X. 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 一,操作系统用户1、在OPC服务器上用Administrator用户建立一个拥有管理员权限的用户并设置密码,一定要设置密码,不能为空,如:用户名:OPCClientUser 密码:1232、 在OPCClient服务器上用Administrator用户建立一个相同的拥有管理员权限的用户并设置相同密码,一定要设置密码,不能为空,如:用户名:OPCClientUser 密码:123,并用OPCClientUser用户登入。二、防火墙设置(OPC服务器和客户端上都要进行设置)1、关闭window自带的防火墙。2、如果不关闭windows自带的防火墙,则需要在window防火墙管理界面上配置允许客户端 阅读全文
posted @ 2012-10-27 10:56 Jiang, X. 阅读(44336) 评论(0) 推荐(0) 编辑
2012年10月26日
摘要: 可以把C#的property机制看成是C#在语言层面上对数据的封装。在使用Property时,可以把它当做一个Field使用。传统的C++中使用的方法类似于: 1 using System; 2 3 public class Customer 4 { 5 private int m_id = -1; 6 7 public int GetID() 8 { 9 return m_id;10 }11 12 public void SetID(int id)13 {14 m_id = id;15 }16 17 ... 阅读全文
posted @ 2012-10-26 15:47 Jiang, X. 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1 using System; 2 3 public class DrawingObject 4 { 5 public virtual void Draw() 6 { 7 Console.WriteLine("I'm just a generic drawing object."); 8 } 9 }10 11 using System;12 13 public class Line : DrawingObject14 {15 public override void Draw()16 {17 Console.Write... 阅读全文
posted @ 2012-10-26 15:18 Jiang, X. 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 1 using System; 2 3 public class Parent 4 { 5 string parentString; 6 public Parent() 7 { 8 Console.WriteLine("Parent Constructor."); 9 }10 public Parent(string myString)11 {12 parentString = myString;13 Console.WriteLine(parentString);14 }15 ... 阅读全文
posted @ 2012-10-26 15:15 Jiang, X. 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1 // Namespace Declaration 2 using System; 3 4 // helper class 5 class OutputClass 6 { 7 string myString; 8 9 // Constructor10 public OutputClass(string inputString)11 {12 myString = inputString;13 }14 15 //this指向特定对象,它产生了对自己带参构造函数的调用16 public OutputClass() : t... 阅读全文
posted @ 2012-10-26 15:06 Jiang, X. 阅读(9460) 评论(0) 推荐(1) 编辑
摘要: 关键字依然是bool, 只是其值只有true,false,没有0,1。这算是一种严格的语言定义吧。使用控制台打印bool得到的是“True”,“False”。 阅读全文
posted @ 2012-10-26 14:20 Jiang, X. 阅读(2786) 评论(0) 推荐(0) 编辑
摘要: 今天学到了C#中的{n}运算符,感觉这个运算符就是对C++中%d运算符的一种改进,因为{n}运算符能够指定替换列表中的第几个,就比%d之类的运算符操作起来省力很多。我的例程: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace braceApplication 7 { 8 class Program 9 {10 static void Main(string[] args)11 {1... 阅读全文
posted @ 2012-10-26 12:00 Jiang, X. 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 昨天在别人的电脑上成功运行了上次我写的打印预览程序,但是今天换了一台电脑就不能运行了,让我觉得非常奇怪。提示的错误信息是“内存XXXX不能为read”,“mfc100d.dll”中有未经处理的异常。奇怪的是,我加了try catch语句后依然出错。我首先尝试了dll链接和动态链接,发现仍然无法解决。然后我尝试了在网上下载mfc100.dll,拷贝到system32目录下,依然出错。由于这种问题我基本上可以确定是操作系统环境的问题,于是我搜索了“电脑不能打印预览解决方法”,发现可能是打印机没有安装驱动或者是打印服务没有启动,于是:一、启动打印服务:右击“我的电脑”\“管理”\"服务和应 阅读全文
posted @ 2012-10-26 10:46 Jiang, X. 阅读(1445) 评论(1) 推荐(0) 编辑
摘要: GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_HIDE);GetDlgItem:通过ID得到窗口的句柄GetDlgItem functionApplies to:desktop apps onlyRetrieves a handle to a control in the specified dialog box.SyntaxC++HWND WINAPI GetDlgItem( _In_opt_HWND hDlg, _In_int nIDDlgItem);ParametershDlg[in, optional]Type:HWNDA handle to th 阅读全文
posted @ 2012-10-26 08:54 Jiang, X. 阅读(1160) 评论(0) 推荐(0) 编辑
2012年10月22日
摘要: 把C#当成一门新的语言学习; .看《C#入门经典》和《C#高级编程》; .不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; .不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点 .会用Visual vs,并不说明你会C#; .学c#并不难,长期坚持实践和不遗余力的博览群书; .如果不是天才的话,想学编程就不要想玩游戏!.看Visual vs的书,是学不了C#语言的; .浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? .浮躁的人容易问:我到底该学什么;——别问,学就对了; .浮躁的人容 阅读全文
posted @ 2012-10-22 13:29 Jiang, X. 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 希望大家可以看完,这篇文章可能会重新塑造你的编程之路!!我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以 阅读全文
posted @ 2012-10-22 13:29 Jiang, X. 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一位数组: int [] c = new int [12];二维数组: int [,] d = new int [1, 2]; 阅读全文
posted @ 2012-10-22 13:28 Jiang, X. 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。1、索引器的定义C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。定义索引器的方式与定义属性有些类似,其一般形式如下:[修饰符] 数据类型 this[索引类型 index]{ get{//获得属性的代码} set{ //设置属性的代码}}修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.数据类型是表示将要存取. 阅读全文
posted @ 2012-10-22 13:28 Jiang, X. 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 控制台输出: 1 using System; 2 3 namespace ConsoleOutApp 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 Console.Write("Welcome to C#\n");10 }11 }12 }消息框输出: 直接声明命名空间using System.Windows.Forms;会提示查找不到该命名空间,要做的是:项目——忝加引用-----在.net组件里面找到-------... 阅读全文
posted @ 2012-10-22 13:27 Jiang, X. 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: 这应该不是第一次学C#了,以前曾经在图书馆借过C#方面的书,大体的感觉是与C++的语法有比较相似的一面,没有在这方面做很多练习,自然就陌生了。回顾自己学习C++的历程,却也是经过了很多遍的学习与实践的结合才掌握到如此程度的。C#应该也是如此。 其实在程序设计语言方面,掌握好几门就已经足够了。计算机领域的核心问题不在程序设计,而在算法与数据结构设计。如果希望自己设计的软件有良好的市场前景,关键还是在于头脑。 借了本《C#大学教程》,感觉读起来没有什么困难,应该算入门级书吧。 第一个例程是设计一个带有图片以及文字的窗体,一行代码也不用写,直接拖控件就可以了。效果如图: 这使我联想到,如果用MFC. 阅读全文
posted @ 2012-10-22 13:27 Jiang, X. 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 在MFC中,对话框的初始化采用的是重载虚函数OnInitialDialog的方法,在C#中可以直接在需要添加消息的类中添加消息处理函数。在对话框载入时调用的函数如下:1 private void Form1_Load(object sender, EventArgs e)2 {3 label1.Text = "C#";4 }MSDN中说明如下:Form.Load Event.NET Framework 4.5Occurs before a form is displayed for the first time.RemarksYou can use this event t 阅读全文
posted @ 2012-10-22 13:25 Jiang, X. 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 主要使用了Int32.Parse(),代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace InputIntFromConsole 7 { 8 class Program 9 {10 static void Main(string[] args)11 {12 string inputNumber;13 int num;14 1... 阅读全文
posted @ 2012-10-22 13:24 Jiang, X. 阅读(9737) 评论(0) 推荐(2) 编辑
2012年10月20日
摘要: 在windows中创建一个对话框,必须具备2个条件:1.对话框模板(dialog template) 这是在rc文件中定义的一个对话框外貌。2.对话框函数(dialog procedure) 其型态非常类似于窗口函数,但是它通常只处理WM_INITDIALOG和WM_COMMAND两个消息。对话框中的各个控制组件也都是小小窗口,各有自己的窗口函数,它们以消息与其管理者(父窗口,也就是对话框)沟通。而所有的控制组件传来的消息都是WM_COMMAND,再由其参数分辨哪一种控制组件以及哪一种通告(notification)。 阅读全文
posted @ 2012-10-20 15:38 Jiang, X. 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 又称callback函数。意思是指:在你的程序中,被windows系统调用的函数。这些函数虽然由你设计,但是永远不会也不该被你调用,它们是为windows系统准备的。窗口函数设计为callback形式,才能开放出一个接口给操作系统调用。定时函数就是非常常见的一种回调函数。 阅读全文
posted @ 2012-10-20 15:29 Jiang, X. 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 当windows的“外壳”(shell)侦测到使用者意欲执行一个windows程序,意识调用加载器把该程序加载,然后调用C start code, 后者再调用WinMain,开始执行程序。 阅读全文
posted @ 2012-10-20 15:24 Jiang, X. 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 所谓makefile,就是让你能够设定某个文件和某个文件相比(比较其产生日期),由此比较结果来决定要不要做某些你所指定的操作。 例如: generic.res : generic.rc generic.h rc generic.rc 意思就是拿冒号左边的文件和冒号右边的文件日期相比,只要右边任一文件比左边的文件更新,就执行下一行所指定的操作。这种操作可以使任何命令行。Tutorial makefileThe MakefileComments Rules DependencyLines ShellLines Macros MacroModifiers InferenceRu... 阅读全文
posted @ 2012-10-20 15:19 Jiang, X. 阅读(1661) 评论(0) 推荐(0) 编辑
摘要: Windows 程序的进行系依靠外部发生的事件来驱动。换句话说,程序不断等待(利用一个while 回路),等待任何可能的输入,然后做判断,然后再做适当的处理。 上述的「输入」是由操作系统捕捉到之后,以消息形式(一种数据结构)进入程序之中。 操作系统通过USER模块(WINDOWS三大模块之一)捕捉外围设备(如键盘和鼠标)所发生的事件。 应用程序获得的2类输入: 由硬件装置所产生的消息(如鼠标移动或键盘被按下),放在系统队列(system queue)中 由Windows 系统或其它Windows 程序传送过来的消息,放在程序队列(application queue)中。 ... 阅读全文
posted @ 2012-10-20 12:15 Jiang, X. 阅读(559) 评论(0) 推荐(0) 编辑
摘要: Windows程序调用的函数可分为2部分:C Runtimes + Windows API。C Runtimes: LIBC.LIB -- C Runtime函数库的静态链接版本 MSVSRT.LIB--C Runtime库的动态链接版本(如果要链接这一函数,你的程序执行时必须有MSVCRT40.DLL在场)Windows API: 由操作系统本身提供,主要是Windows三大模块:GDI32.DLL USER32.DLL KERNEL32.DLL所有Windows程序都必须载入WINDOWS.H,不过,它只照顾三大模块所提供的API。 阅读全文
posted @ 2012-10-20 11:59 Jiang, X. 阅读(320) 评论(0) 推荐(0) 编辑
摘要: Windows程序分为2部分:程序代码 + UI资源。这2部分最后以RC编译器整合为一个完整的EXE档案。UI资源的实际内容是借助各种工具产生的,如.ico .bmp .cur文件等。程序员必须在资源描述文档(.rc)中描述他们。RC编译器读取RC文件的描述后将所有UI资源文件集中制作出一个.RES文件,再与程序代码结合在一起,这才是一个完整的Windows可执行文件。 阅读全文
posted @ 2012-10-20 10:42 Jiang, X. 阅读(250) 评论(0) 推荐(0) 编辑
2012年10月19日
摘要: 在打开文件时常常需要判断文件是否存在,可用如下代码。1 ifstream inFile(filename, ios::in);2 3 if(!inFile.is_open())4 {5 return;6 } 阅读全文
posted @ 2012-10-19 10:54 Jiang, X. 阅读(1952) 评论(0) 推荐(0) 编辑
摘要: 1.选择Release,编译器会做一些自动的优化。曾经有一个程序在debug下运行30min,在release下只需要运行几分钟,充分说明了release优化的效果。2.找出其所以来的dll程序,我使用了Dependency Walker(http://www.dependencywalker.com/)。它可以根据exe文件得到其所依赖的dll文件及其路径。3.把exe与dll放在一个路径下。4.打包。我使用的是Inno Setup。 阅读全文
posted @ 2012-10-19 10:38 Jiang, X. 阅读(1316) 评论(0) 推荐(0) 编辑