深入DCOM之MTA (转)
深入DCOM之MTA (转)[@more@] 运行再MTA中的线程不需要windows消息机制,因为COM直接通过对象的v-table来调用对象的接口,所以在MTA中的COM对象没有同步机制,需要自己通过临界区、事件等机制来实现同步,COM对象的接口指针也可以直接在MTA的线程之间传递。 组件通过调用CoInitializeEx(NULL, COINIT_MULTITHREADED)来声明支持MTA,客户端代码调用CoInitializeEx(NULL, COINIT_MULTITHREADED)创建MTA,一个进程中最多只能创建一个MTA,所以第一个调用CoInitializeEx的线程创建一个MTA,之后再调用CoInitializeEx的线程则加入该MTA
Attribute在.NET编程的应用(六) (转)
Attribute在.NET编程的应用(六) (转)[@more@]Attribute在.NET编程的应用(六) (承上节) .net framework拦截机制的设计中,在客户端和对象之间,存在着多种消息接收器,这些消息接收器组成一个链表,客户端的调用对象的过程以及调用返回实行拦截,你可以定制自己的消息接收器,把它们插入了到链表中,来完成你对一个调用的前处理和后处理。那么调用拦截是如何构架或者说如何实现的呢? 在.NET中有两种调用,一种是跨应用域(App domain),一种是跨上下文环境(Context),两种调用均通过中间的代理(Proxy),代理被分为两个部分:透明
Jboss3.0-Tomcat4.03下运用JavaMail发电子邮件. (转)
Jboss3.0-Tomcat4.03下运用JavaMail发电子邮件. (转)[@more@] Operator System: windows 2000 server 2 Application server: jboss3.0-tomcat4.03 db: ORACLE8.17 jdk: jdk1.31 web Server apache1.3 首先安装好Jboss3.0-Tomcat4.03我安装在E:Jboss3.0_Tomcat4.03,打开E:Jboss3.0_Tomcat4.03serverdefaultdeploy目录下的Mail-service.XML其内容如下 <?xml version="1.0" encoding="UTF-8"?> <server> <classpath codebase="lib"
Jboss3.0-Tomcat4.03,Apache整合 (转)
Jboss3.0-Tomcat4.03,Apache整合 (转)[@more@] Operator System: windows 2000 server 2 Application server: jboss3.0-tomcat4.03 db: ORACLE8.17 jdk: jdk1.31 web Server apache1.3 一、首先安装好Apache,Jboss3.0-Tomcat4.03我安装在E:Jboss3.0_Tomcat4.03和E:WebServerApache目录下 二、编缉tocmat-service.XML文件如下 <?xml version="1.0" encoding="UTF-8"?> <!-- Set catalina.home to the location of the Tomcat-4.x dist. The default va
Jboss3.0-Tomcat4.03的数据库的配置(以Oracle为例) (转)
Jboss3.0-Tomcat4.03的数据库的配置(以Oracle为例) (转)[@more@] XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 一、请将classes12.zip加入classpath中去。 二、请参况hsqldb-service.xml文件编写ORACLEdb-service.xml文件 请打开serverdefaultdeploy目录下的hsqldb-service.xml文件,这就是一个jboss3.0_tomcat4.03下实现数据库连接的例子,它是连接hsql数据库的它的内容如下: <?xml version="1.0" encoding="UTF-8"?> <!-- ==================================
Jboss3.0-Tomcat4.03的虚拟主机的配置 (转)
Jboss3.0-Tomcat4.03的虚拟主机的配置 (转)[@more@] XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 1、请你首先打开WINNTsystem32driversetc目录下的hosts文件,在里面加入你想要虚拟的机器名,如我是这样加的 127.0.0.1 www www.www.systekgz.com.cn 在这里www.systekgz.com.cn是我的域名。 www是虚拟名 而我机器的本身名字是fangm,在域中的就是fangm.www.systekgz.com.cn 2、打开jboss-tomcat安装目录下的serverdefaultdeploy的目录中的tomcat4-service.xml文件,原
win2000下“打开”对话框实现2000的风格综述 (转)
win2000下“打开”对话框实现2000的风格综述 (转)[@more@]本人天大小硕,平时使用vc MFC处理图像。我生成可执行程序的目的不求界面多么pp,只是觉得很简单的windows界面应该可以让人随心所欲地为己所用,于是乎网上求知,现总结一下已经得到有关打开文件对话框的实现方法,希望可以给初学者添点乐趣。 一般而言,在使用VC新建一个工程时可以选择所要打开文件的后缀来过滤出自己想得到的文件类型,然后在生成的程序中通过点击打开或者新建这样的按钮,在标准的windows对话框下实现文件的打开。可是我们看到默认的这个对话框并不是我们在wi
WTL体系结构(4) (转)
WTL体系结构(4) (转)[@more@]WTL体系结构 对话框ATL的对话框支持一向很好,对此WTL新增了通用对话框的封装. 本质上是为对话框加入了输入验证和回调函数. 比如, 你想在用户改变年Open对话框中的文件夹时有所动作,那么你应该从CFileDialogImpl<>继承一个类,实现OnFolderChange(): class CMyFileDialog : public CFileDialogImpl<CMyFileDialog>{public: CMyFileDialog(BOOL b) : CFileDialogImpl<CMyFileDialog>(b) { } void OnFolderChange(LPOFNOTIFY lpon) { char strFolder[MAX_PATH
随着鼠标的移动变换表格背景色 (转)
随着鼠标的移动变换表格背景色 (转)[@more@]<html><script LANGUAGE="Javascript"><!--function mOvr(src) {if (!src.contains(event.fromElement)) {src.style.cursor = 'hand'; src.bgColor = "#FDEAB5";}}function mOut(src) {if (!src.contains(event.toElement)) {src.style.cursor = 'default'; src.bgColor = "#FFdb91";}}function mClk(src) {if(event.srcElement.tagName=='TD'){src.children.tags('A')[0].click();}}--></script> <body topmargin="0" leftmargin="0" bgcolor="#ffcc66" marginwid
从人类秩序到分布计算的思考 (转)
从人类秩序到分布计算的思考 (转)[@more@]计算机程序是对人类智力的机械化,两者具有很大的相似性。 人类思考有两种模式: 1。按特定步骤。(比如做题) 2。反馈式。(比如骑车) 这两种模式实质上都是一样的,按控制理论看一个是开环, 一个是闭环。第一种模式强调的是特定计算步骤,它的计 算机形式是算法。第二种模式强调的是比较,分析,它的 计算机形式也是算法。所以,总的说来,我认为计算机的 实质就是算法。另外一个必不可少的因素是计算信息,即 计算对象。关于这点,需要强调的是并不是所
AspectJ实现设计模式(二)——策略模式 (转)
AspectJ实现设计模式(二)——策略模式 (转)[@more@] 本文将继续介绍使用ASPectJ实现设计模式之策略模式,文章以一个图书折扣例子的形式描述了策略模式AspectJ版本的参考实现。 策略模式把行为和环境分割开来。环境类负责维持和查询行为类,各种算法则由具体的策略类实现。由于算法和环境独立开来,算法的增减,修改都不会影响环境和客户端。策略模式的简易UML图例如下 2003-7-152137160.jpg" align=baseline border=0> 而使用AspectJ实现的策略模式UML图与之有很大的区别 Context和Strategy接口都由抽象方面Strate
JAVA中取顺序号 (转)
JAVA中取顺序号 (转)[@more@]在写系统的时候,经常会遇到用一个唯一的键值去票识一个对象,如数据库中一条记录的主键,文件的文件名 等。常用的做法将这个键值从1,2,3……这样一值递加下去,但这样会比较费时。如在数据库中的记录,你要 先找出最大的一个流水号,再进行加1的操作,这样已是做了一个数据库的select操作,如在文件系统中,那就 要先读出所有文件名,对文件名进行排序,那更麻烦了。 下面介绍一个比较简单快捷的方法,那就是使用系统时钟。在Java中,使用System.currentTimeMillis()可以 得到这前系统时间所对应的毫秒
决策者得选择(Strategy) (转)
决策者得选择(Strategy) (转)[@more@] 我们似乎总是在为选择这个词苦恼.当我们选择生活得时候就放弃了激情. 当我们选择程序员得时候就放弃了时间.这一切都是在动态得抉择得.并 非有命运决定.而是在动态得自身来决定.好了现在考虑一个比较现实得 问题.假设.如果你有个临时会议.却无法确定什么时候要去.因为是临时 决定得.就无法决定.如果现在得时间是5:00--6:00那么你必须要去参加.否则 你依然可以留在公司办公.且开会和办公都需要整理文件那么这就是无法 确定得因素.也许会说可以用if作判断.那么如果是一个很复杂得情况. 并
通讯兵(Chain of Responsibility) (转)
通讯兵(Chain of Responsibility) (转)[@more@] 如果看英文名字的话你可能会想到责任链.其定义为使多个对象都有机会处理 请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链, 并沿着这条链传递该请求,直到有一个对象处理它为止。那么可能会误解. 其实这个模式很类似消息通讯.也就好象是在对应的消息函数.至少我看完这个 模式首先想到的就是这个.的确也是十分象.你甚至也可以构造一个句柄来判断消息 处理函数.当然我们没必要那么些select ...case ....那不方便.而且 要适合面向对象原则.其实这
用VB调试串口通讯 (转)
用VB调试串口通讯 (转)[@more@]现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSCOmm串口通讯控件(在microsoft Comm Control 6.0中)。具体程序如下:控件简称:MSC Dim Out(12) As Byte '接收var中的值XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> Dim var As
在COM中使用数组参数-ICollection (转)
在COM中使用数组参数-ICollection (转)[@more@]在COM中使用数组参数-ICollection 关键字:DCOM、数组、自定义类型、Marshal、SafeArray、ICollection 1 使用ICollection ICollection是从 IDispatch继承的接口。ICollection还需要一个IEnumVARIANT接口配合实现功能。IEnumVARIANT是从IUnknown继承的,而不是从IDispatch接口继承。 ICollection接口提供了最大的面向对象的设计灵活性和可重用性。在数组指针和SafeArray方法中,数组的每个元素必须事先计算出来,并且保存在特定的数据结构中。使用ICollection接口,可以设计出动态生
在COM中使用数组参数-SafeArray (转)
在COM中使用数组参数-SafeArray (转)[@more@]在COM中使用数组参数-SafeArray 关键字:DCOM、数组、自定义类型、Marshal、SafeArray、ICollection 1 使用SafeArray SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。 1.1 SafeArray处理函数 COM提供了一套api用于处理SafeArray。为了保证程序和SafeArray结构无关.NET/editor/Editor.htm#_ftn1" name=_ftnref1>[1],程序中建立、读取、更改和释放SafeArray都应该通过这些API进行,而不应该直接读
在COM中使用数组参数-数组指针 (转)
在COM中使用数组参数-数组指针 (转)[@more@]在COM中使用数组参数-数组指针 关键字:DCOM、数组、自定义类型、Marshal、SafeArray、ICollection 1 使用数组指针 数组指针使用标准的C/C++数组表示方式。数组中的每个元素按照顺序在内存中依次排放。数组的下标从0开始计算。数组的第一个元素(下标为0的元素)的地址就是数组的指针,数组中每个元素所占的内存空间大小必须是固定的,只和数组类型有关。计算数组中某个元素的指针时,使用元素所占的字节数乘上元素下标就可以得出这个元素和数组指针之间的偏移量.NET/editor/Editor.ht
C#Builder正式产品照片 (转)
C#Builder正式产品照片 (转)[@more@]1 Enterprise版本的BOX2003-7-151543080.jpg" align=baseline border=0> 2 BOX的背面 3 BOX的内部 4 光盘,包括2张安装盘,1张Partner CD,1张Optimizeit for .NET 5 sql SERVER和db2的开发者许可版本 6 手册
On Designing Good Libraries -- Part II (转)
On Designing Good Libraries -- Part II (转)[@more@]Brad Abrams You asked for it, you got it.. feedback always welcome.XML:NAMESPACE PREFIX = O /> Attribute Usage ?FONT face="Times New Roman" size=1> Suffix with 揂ttribute?O:P> ?FONT face="Times New Roman" size=1> Perf tip: seal attribute classes for faster runtime lookup ?FONT face="Times New Roman" size=1> Specify the AttributeUsage attribute completely ?FONT face="Times New Roman" size=1>