上一页 1 2 3 4 5 6 7 ··· 21 下一页
摘要: 以下写的并不是通道的基础知识,而是一些思考,并且需要经过实际程序验证。一、服务器端1、服务器端通道必须是TcpChannel或者TcpServerChannel这两种类对象。2、服务器端同一端口,不能同时注册多个通道;3、一个通道可以建多个远程对象,但是注册时,必须指定不同的URI。如果用同一个URI注册,后面的对象会覆盖前面的对象。例如: RemotingConfiguration.RegisterWellKnownServiceType(typeof(AnotherObj), "BroadCastMessage.soap", WellKnownObjectMode.Singleton); 阅读全文
posted @ 2011-02-18 17:39 pjh123 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 关于事件调用与直接调用的区别:环境是这样的,在MainForm中,有个函数,如下:public void GetMessage(string str){ ... //执行创建控件的操作}该函数注册了另外一个对象(obj)的事件,即obj.localEvent += new BroadCastEventHandler(GetMessage);//BroadCastEventHandler是个委托出现了一下情况:操作1:当通过MainForm的UI,执行GetMessage函数时,该函数完全正常,创建了新控件。操作2:当通过事件触发GetMessage函数时,该函数不正常,新控件无法创建,奇怪的现 阅读全文
posted @ 2011-02-12 18:02 pjh123 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 所谓子类化,也就是因为某种需求,对一个windows窗口(当然这里的窗口可以是控件、Dialog等)用自己的窗口函数,代替原有的窗口函数)再看看别人的解释:所谓窗口子类化,实际上就是改变窗口内存块中的有关参数。由于这种修改只涉及到一个窗口的内存块,因此它不会影响到属于同一窗口类的其它窗口的功能和表现(IDàHWNDàCWnd)。窗口子类化中最常见的是修改窗口内存块中的窗口函数地址(lpfnWndProc),使其指向一个新的窗口函数,从而改变原窗口函数的处理方法,做出特定功能适应。在实际开发中,有些情况标准控件的标准过程是无能为力的。比如:在我们的应用中要求一个EDIT控件接收老师对学生的评价, 阅读全文
posted @ 2011-01-22 15:52 pjh123 阅读(692) 评论(0) 推荐(1) 编辑
摘要: 1消息的分类1.1队列消息、非队列消息l队列消息:windows为每个应用程序都建立一个消息队列,那么通过消息队列,进行传送的消息都属于队列消息;一般来说,由鼠标、键盘产生的消息都属于队列消息。(为什么呢?想想,鼠标、键盘事件都是由系统捕获的,系统捕获后要传递给应用程序,就一定的通过消息队列);l非队列消息:除了队列消息,剩下的自然而然就是非队列消息了;u队列消息是通过PostMessage()的方式投递消息的,这样的消息发送也叫“寄送”,该函数寄送消息即可返回,不需要等待程序处理结果;u非队列消息是通过SendMessage()的方式进行的,这样的消息发送叫“发送”;消息不需要进入窗口的消息 阅读全文
posted @ 2011-01-19 16:15 pjh123 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 接上篇1、 消息的处理流程好了,有了前面1、2小节的基础,我们接下来来看消息的处理流程:以下描述消息从AfxWndProc起点开始的处理流程:1) AfxWndProc(HWND hWnd,Unit nMsg,….)说明,这里的hWnd指定了到底从哪个窗口开始接收并处理消息;在AfxWndProc中,调用了AfxCallWndProc函数,pWnd已经不是句柄了,而是由句柄得到的一个具体的CWnd指针指向的窗口类CWnd* pWnd=CWnd::FormatHandlePermant(hWnd)2) AfxCallWndProc(CWnd *pWnd,Unit nMsg,…..)说明:,在Af 阅读全文
posted @ 2011-01-12 23:50 pjh123 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 一、消息的分类1、 队列消息、非队列消息l 队列消息:windows为每个应用程序都建立一个消息队列,那么通过消息队列,进行传送的消息都属于队列消息;一般来说,由鼠标、键盘产生的消息都属于队列消息。(为什么呢?想想,鼠标、键盘事件都是由系统捕获的,系统捕获后要传递给应用程序,就一定的通过消息队列);l 非队列消息:除了队列消息,剩下的自然而然就是非队列消息了;u 队列消息是通过PostMessage()的方式投递消息的,这样的消息发送也叫“寄送”,该函数寄送消息即可返回,不需要等待程序处理结果;u 非队列消息是通过SendMessage()的方式进行的,这样的消息发送叫“发送”;消息不需要进入 阅读全文
posted @ 2011-01-11 23:14 pjh123 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 这里整理一下C++与C#的一些区别:一、自定义对象例如类:class Test{public: Test(void); Test(const Test& t); ~Test(void);public: int i;}(1)、 C++:Test t:这样声明一个Test类型的对象,在栈中,这是会调用Test(void)构造函数;接下来就可以使用t了,如int j=t.i,这样是没问题的;Test t=new Test():在堆上生成一个Test对象,也会调用构造函数,接下来就可以使用t了,如int j=t-i,这样是没问题的(2)、 C#Test t,在C#中,这样声明的t是不能使用的 阅读全文
posted @ 2010-12-30 17:38 pjh123 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 考虑一下代码:class Test{public:Test(void);Test(const Test& t);~Test(void);public:int i;};Test::Test(){i=1;}Test::Test(const Test &t){this-i=(t.i+1);}Test::~Test(){}Test Func(Test t){int i=t.i+1;return t;}int _tmain(int argc, _TCHAR* argv[]){Test t;int i=t.i;Func(t);return 0;}注意红色标注的函数调用,调用了几次拷贝构造函数?两次:1次 阅读全文
posted @ 2010-12-30 17:37 pjh123 阅读(177) 评论(0) 推荐(0) 编辑
摘要: .Net Remoting常用的远程对象激活模式是服务器端激活模式,又叫做WellKnow方式。服务器端激活模式又分两种,分别是:SingleTon、和SingleCallSingleTon、和SingleCall的区别如下:1、SingleTon模式:此为有状态模式。如果设置为SingleTon激活方式,则Remoting将为所有客户端建立同一个对象实例。2、SingleCall模式:SingleCall是一种无状态模式。一旦设置为SingleCall模式,则当客户端调用远程对象的方法时,Remoting会为每一个客户端建立一个远程对象实例,至于对象实例的销毁则是由GC自动管理的。对于服务器 阅读全文
posted @ 2010-12-29 18:18 pjh123 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 引用:http://blog.csdn.net/luminji/archive/2009/10/15/4676560.aspxremoting与socket、webservice和wcf的比较及优势1:socket VS remoting 使用socket无疑是效率最高的。但是,在复杂的接口环境下,socket的开发效率也是最低的。故在兼顾开发效率的情况下,可以使用remoting来代替socket开发。并且: 1、Tcp通道的Remoting速度非常快。 你可以通过端口查看工具,发现remoting比直接socket传输的内容,应该是属于同一个数量级的。我的另一个担心是,大客户端数量的情况下 阅读全文
posted @ 2010-12-28 18:25 pjh123 阅读(1404) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 21 下一页