在NT4.0 server中,能否用ASP调用自己写的COM(或COM+)程序?

smallmark 2001-07-19 12:45:59
...全文
165 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolstar 2001-07-19
  • 打赏
  • 举报
回复

你是说组件还是DCOM程序?
COM组件当然可以在ASP中调用
黑白双傻 2001-07-19
  • 打赏
  • 举报
回复
CreateObject()不就是调用组件吗?
支持
smallmark 2001-07-19
  • 打赏
  • 举报
回复
--->
smallmark 2001-07-19
  • 打赏
  • 举报
回复
哎,说白了就是NT 4.0 server支不支持COM或COM+
第一部分 了解COM 第1章 COM概述 何谓CoM COM术语 COM利与弊 COM的好处 COM的局限性 COM组件与接口 何谓接口 接口特征 接口类型 接口规则 接口设计 COM组件的实现规则 实现IUnknown规则 内存管理规则 引用计数规则 COM激活 COM类型 COM客户机 COM服务器 ActiveX控件 COM与面向对象技术 包装 抽象 多态 继承 COMTrader应用程序 小结 第2章 由VC++建立并使用COM服务器 IDL文件 建立第一个COM服务器 定义自定义接口 实现IUnknown和自定义接口 完成COM服务器 生成测试客户机 用ATL建立COM服务器 关于ATL 用ATL建立进程内COM服务器 用ATL建立进程外COM服务器 线程与COM服务器 Win32多线程应用 线程COM组件 自动化与IDispatch 用VC++实现IDispatch ATL与自动化 Automation数据类型 再谈类型库 C++自动化客户机 VB自动化客户机 小结 第3章 用VB建立并使用COM服务器 选择COM项目 设计接口 描述接口 浏览接口 生成对象 使用ClassBuilder 增加属性 增加方法 增加事件与枚举 使用ActiveXDataObject(ADO) 在服务器组件使用Recordset对象 在客户机组件使用ADOR 生成断开的Recodset 生成自己的RecodsctS 使用用户定义类型 错误处理 服务器客户机错误处理 使用VBErr.Raise机制 在VB使用线程模型 设置线程模型 了解再入性与公寓 小结 第二部分 COM与Internet 第4章 在VC++建立并使用ActiveX控件 ACtiveX控件概还 属性与方法 控件与容器通信 事件与连接点 建立第一个控件 生成控件 测试控件 增加方法 增加属性 增加事件 增加属性页 允许属性保持 使用控件 建立复合控件 增加复合控件 增加功能 增加事件 处理复合控件事件 处理错误 使用控件 小结 第5章 在VB建立并使用ActiveX控件 VB控件简介 约束与无约束控件 控件生成技术 属性类型 方法 属性配置 过程属性 环境属性配置 运行时只读属性 只在运行时有效的属性 扩展属性 容器属性 合成控件属性 可关联属性 持续与属性包 属性包 使用ActiveX控件界面向导 了解控件寿命 生成ActiveX控件 生成无约束控件 生成设计时数据约束控件 生成运行数据约束控件 小结 第6章 用VC++建立InternetCOM组件 IEActiveX控件 轻量级控件 安全控件 持续属性 文档对象模型编程 活动服务器组件 活动服务器页面 ASP页面的COM组件 小结 第7章 用VB建立InternetCOM组件 无窗口控件 ActiveX控件容器的线程模型 ActiveX控件的安全性 Web页面访问 VBDHTML项目 DHTML项目基础 DHTML应用程序样本 VBIIS应用程序 WebClass 一个IIS应用程序样本 设计控件 设计控件与HTML文件 样本设计控件 小结 第三部分 了解DCOM 第8章 DCOM概述 何谓DCOM 为什么使用DCOM DCOM操作 DCOM组件位置 进程内或进程外组件 代理 RPC(RemoteProcedureCall,远程过程调用) 调动 数据传递 DCOM配置实用程序 DCOM应用程序的安全机制 验证 授权 加密 整性检查 小结 第9章 用VC++建立DCOM服务器 标准与自定义调动 标准调动 自定又调动 网络通伯 远程激活 AppID注册表项 可配置AppID注册表项参数 IUknown优化 DCOM与NT服务 NT服务解剖 基于NT服务的COM服务器 小结 第10章 用VB建立DCOM服务器 应用程序对象模型 何谓对象模型 如何生成对象模型 DCOM设计准则与技术 再论调动 按数值与按引用 DCOM进程外服务器 建立DCOM组件 增加测试客户机 IIS应用程序 增加WebClasses 使用模板 增加自定义Webltems 远程错误处理 小结 第四部分 了解COM++ 第11章 COM++概述 COM与WindowsDNA 用户界面层技术 间层技术 数据库层技术 组件服务配置 事务处理 排队组件(QC) 实时结构的限制 事务性消息排队 排队组件结构 排队组件故障恢复 QC安全性 动态负荷平衡 对象地 小结 第12章 用VC++建立COM++组件 ADO编程 ADO与OLEDB VC++的ADO VC++的ADO扩展 建立COM++应用程序 温习IObjectContext接口 用ATL建立COM++组件 编制基于角色的安全性 处理COM+事务 控制事务结果 指定事务属性 确定事务情境 传递接口指针 共享状态 建立事务性COM+组件 小结 第13章 用VB建立COM+组件 了解事务 事务与多层应用程序 COM+与事务 事务属性:ACID COM+系统简介 COM+运行环境 COMComponentServices COM+接口 资源分配器 应用程序组件 探索COM+编程模型 COM+组件作为COMDLL 基本COM+编程规则 COM+API 用VB编程COM+ 对象描述表 COM+组件的生命周期 ObjectControl接口 MTS活动 COM生成对象 安全引用 组件之间的参数传递 数据类型 使用分布式事务 分布式事务协调器(MSDTC) COM+事务的工作 事务与有状态对象 使用共享属性管理器(SPMSharedProperyManager) 小结 第14章 了解MSMQ 何谓MSMQ MSMQ的好处 MSMQ组件 队列 消息 MSMQ对象模型 MSMQ设置 MSMQ基础 消息发送 消息接收 MSMQ事件 MSMQ事务 小结 第五部分 高级COMCOM+ 第15章 VC++与VBCOM+服务 了解COM+激活 描述表包装器 激活顺序 使用即时(JIT)激活 使用对象构造 性公寓简介 了解同步域 表示事务状态 取得对象信息 使用对象地 对象池的好处 对象地要求 对象地配置 使用排队组件 QC限制 QC配置 QC调用 QC播放控件 使用负荷平衡 负荷平衡要求 负荷平衡配置 小结 第16章 COMCOM+安全性 何谓安全性 WindowsNT安全简介 NT验证 NT扮演 NT访问控制 COM安全结构 验证 访问控制 启动权限 标_ 扮演与掩盖 安全总括 COM+安全 COM+说明性安全 COM+角色 编程COMCOM+安全 整个进程安全 接口级安全 激活安全 服务器方安全 调用描述表安全信息 SecuntyProperty信息 安全性与数据库访问 小结 第17章 Windows2000的新COM特性 同步机制 COM同步API COM同步接口 异步COM 异步接口构造 异步接口调用 关于异步服务器与客户机 让服务器进行异步处理 调用序列化与自动完成 COM管道 COM管道接口 异步管道与提前读取 调用对象与调用取消 调用取消请求 调用取消处理 轻量级处理器 标准LWH 自定义LWH 小结 第六部分 调试与部署COMCOM+应用程序 第18章 调试与剖析COMCOM+应用程序 调试VB组件 调试MTS组件 调试COM+组件 使用条件编译 调试VC++组件 用VisualStUdioAnalyzer剖析 小结 第19章 部署COMCOM+应用程序 DCOM应用程序部署 配置DCOM服务器 配置DCOM客户机 在Internet上部署 Internet上部署与包装 签名CAB文件 许可ActiveX控件 自动化COM+配置 使用COMAdmin接口与集合 配置COM+应用程序 配置组件 配置角色 部署COM+应用程序 小结
因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章 COM背景知识 1.1 COM的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向对象程序设计方法 1.1.4 最终解决方案:组件软件 1.1.5 面向对象的组件模型——COM 1.2 COM的发展历程 1.2.1 COM以前的对象技术:DDE、OLE 1、VBX控件 1.2.2 COM首次亮相:OLE2 1.2.3 Microsoft拥抱Internet:ActiveX 1.2.4 更多的新名词:Windows DNA和COM+ 1.2.5 远程对象:ORBs和DCOM 1.2.6 COM的最新版本:COM+ 1.3 COM技术现状 1.3.1 COM与CORBA 1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从C++到COM 2.1 C++客户重用C++对象——例程DB 2.1.1 C++对象 2.1.2 客户程序 2.2 将C++对象移进DLL——例程DB_cppdll 2.2.1 成员函数的引出 2.2.2 内存分配 2.2.3 Unicode/ASCII兼容 2.2.4 例程实现 2.2.4.1 修改接口文件 2.2.4.2 修改对象程序 2.2.4.3 修改客户程序 2.3 C++对象使用抽象基类——例程DB_vtbl 2.3.1 问题:私有数据成员被暴露 2.3.2 解决方案:抽象基类 2.3.2.1 什么是抽象基类(Abstract Base Class) 2.3.2.2 实现秘诀:虚函数(Virtual Functions) 2.3.3 使用抽象基类 2.3.4 例程实现 2.3.4.1 修改接口文件 2.3.4.2 修改对象程序 2.3.4.3 修改客户程序 2.4 改由COM库装载C++对象——例程dbalmostcom 2.4.1 COM库 2.4.2 对象创建的标准入口点 2.4.3 标准对象创建API 2.4.4 标准对象注册 2.4.5 例程实现 2.4.5.1 修改接口文件 2.4.5.2 修改对象程序 2.4.5.3 修改客户程序 2.5 将C++对象变成COM对象 2.5.1 引用计数 2.5.2 多接口 2.5.3 IUnknown接口 2.5.4 标准类厂接口:IClassFactory 2.5.5 对象代码的动态卸载 2.5.6 自动注册 2.5.7 例程实现 2.5.7.1 修改接口文件 2.5.7.2 修改对象程序 2.5.7.3 修改客户程序 2.6 为COM对象添加多接口支持 2.6.1 多接口 2.6.2 DEFINE_GUID 2.6.3 例程实现 2.6.3.1 修改接口文件 2.6.3.2 修改对象程序 2.6.3.3 修改客户程序 小结 第3章 COM基础知识 3.1 对象与接口 3.1.1 COM对象 3.1.2 COM接口 3.1.3 IUnknown接口 3.1.3.1 生存期控制:AddRef和Release 3.1.3.2 接口查询:QueryInterface 3.1.4 全球唯一标识符GUID 3.1.5 COM接口定义 3.1.6 接口描述语言IDL 3.2 COM应用模型 3.2.1 客户/服务器模型 3.2.2 进程内组件 3.2.3 进程外组件 3.2.4 COM库 3.2.5 HRESULT返回值 3.2.6 COM与注册表 3.3 COM组件 3.3.1 实现类厂对象 3.3.2 类厂对象的创建 3.3.3 实现自动注册 3.3.4 实现自动卸载 3.4 COM客户 3.4.1 COM对象创建函数 3.4.1.1 CoGetClassObject 3.4.1.2 CoCreateInstance 3.4.1.3 CoCreateInstanceEx 3.4.2 如何调用进程内组件 3.4.3 COM客户调用进程外组件 3.5 进一步认识COM 3.5.1 可重用机制:包容和聚合 3.5.2 进程透明性 3.5.3 安全性机制 小结 第4章 COM扩展技术 4.1 可连接对象机制 4.1.1 客户、接收器与可连接对象 4.1.1.1 接收器 4.1.1.2 可连接对象 4.1.1.3 客户 4.1.2 实现可连接对象 4.1.3 实现接收器 4.1.4 建立接收器与连接点的连接 4.1.5 获得出接口的类型信息 4.2 结构化存储 4.2.1 什么叫结构化存储和复合文件 4.2.2 存储对象和IStorage接口 4.2.2.1 IStorage接口 4.2.2.2 获得IStorage指针 4.2.2.3 释放STATSTG内存 4.2.2.4 枚举存储对象的元
更多请访问http://www.shidai365.cn aspjpeg组件高级使用方法介绍2007-10-13 16:471、什么是AspJpeg?   AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上对其进行详细和深入介绍的文文章并不多,即使有一般也只是牵涉到图片缩略图和图片水印,这与其为英文版本有着密切的关系。   AspJpeg可以使用很少的代码在您的ASP/ASP.Net应用程序上动态的创建高质量的缩略图象,支持的图象格式有:JPEG, GIF, BMP, TIFF, PNG AspJpeg主要可以做到: 生成缩略图片 生成水印图片 图片合并 图片切割 数据库支持 安全码技术 2、AspJpeg功能摘要 支持JPEG, GIF, BMP, TIFF 和 PNG 格式图片. 输出格式始终为 JPEG 源图片可以来源于磁盘、内存、或者记录集(数据库) 缩略图片可以保存到磁盘、内存、或者HTTP流 支持三种更改大小方式: nearest-neighbor, bilinear, and bicubic. 可以在图片之上添加图片或者文字. 支持画画 支持复制,反转,旋转,锐化,灰度调节. 可以调节压缩比率,以得到最佳输出效果和大小. 从Jpeg图片抽取EXIF 和 IPTC数据. CMYK-RGB转换 Read/write access to individual pixels of an image. (从图象对任意象素进行读/存取。) 3、AspJpeg系统需求 Windows 95/98/NT/2000/XP/2003, and IIS 4.0+ and ASP/ASP.NET, or Visual Basic 5.0+, or Visual C++ 5.0+, or any development environment supporting COM. 4、AspJpeg安装 全新安装: 在AspJpeg安装过程输入序列号即可,如果安装位置磁盘格式为NTFS,则可能出现访问权限问题,需手工设置安装目录对Everyone有访问权限。 AspJpeg1.6 aspjpeg16.rar 更新安装: 如果之前有装过其它版本的AspJpeg组件,则需要先卸载原来的组件,再进行新版本的安装。 先停止IIS Net Stop iisadmin /y 卸载旧版组件 regsvr32 /u Path/aspjpeg.dl(Path为安装路径) 重启IIS Net Start w3svc 然后再进行全新安装或复制AspJpeg.dll文件到安装目录进行手工安装: regsvr32 Path/aspjpeg.dll(Path为安装路径) 如果在正常安装过程没有输入序列号或手工安装则必须在注册表加入以下项,为方便起见您可以直接将以下代码保存为.reg文档并导入注册表: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Persits Software\AspUpload3\RegKey] @="21764-40765-60456" 5、如何创建一个AspJpeg实例? Set Jpeg = Server.CreateObject("Persits.Jpeg") 6、如何查看到期时间(是否注册成功)? Set Jpeg = Server.CreateObject("Persits.Jpeg") Response.Write Jpeg.Expires 注册成功则到期时间为:9999-9-9 否则为:安装日期加1个月期限 7、如何用AspJpeg组件生成图片缩略图? < % Set Jpeg = Server.CreateObject("Persits.Jpeg") '创建实例 Path = Server.MapPath("../images/apple.jpg") '处理图片路径 Jpeg.Open Path '打开图片 '调整宽度和高度为原来的50% Jpeg.Width = Jpeg.OriginalWidth / 2 Jpeg.Height = Jpeg.OriginalHeight / 2 Jpeg.Save Server.MapPath("apple_small.jpg") '保存图片到磁盘 Jpeg.Close:Set Jpeg = Nothing %> 8、如何用AspJpeg组件生成图片水印? < % Set Jpeg = Server.CreateObject("Persits.Jpeg") Jpeg.Open Server.MapPath("images/dodge_viper.jpg") 开始文字 Jpeg.Canvas.Font.Color = &000000'' red 颜色 Jpeg.Canvas.Font.Family = "Courier New" 字体 Jpeg.Canvas.Font.Bold = True 是否加粗 Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc." 打印坐标x 打印坐标y 需要打印的字符 以下是对图片进行边框处理 Jpeg.Canvas.Pen.Color = &H000000'' black 颜色 Jpeg.Canvas.Pen.Width = 2 画笔宽度 Jpeg.Canvas.Brush.Solid = False 是否加粗处理 Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height 起始X坐标 起始Y坐标 输入长度 输入高度 Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") 保存 %> 9、如何用AspJpeg组件进行图片合并? AspJpeg 1.3+ enables you to place images on top of each other via the method DrawImage. To use this method, you must create two instances of the AspJpeg objects and populate both of them with images via calls to Open (or OpenBinary). When calling Canvas.DrawImage, the 2nd instance of AspJpeg is passed as an argument to this method, along with the X and Y offsets (in pixels): 使用该方法,您必需创建两个AspJpeg实例对象 < % Set Jpeg1 = Server.CreateObject("Persits.Jpeg") Set Jpeg2 = Server.CreateObject("Persits.Jpeg") Jpeg1.Open Server.MapPath("t.jpg") Jpeg2.Open Server.MapPath("t1.jpg") Jpeg1.Canvas.DrawImage 10, 10, Jpeg2 ' optional arguments omitted jpeg1.save Server.mappath("tt.jpg") %> 10、如何用AspJpeg组件进行图片切割? AspJpeg 1.1+ is also capable of cutting off edges from, or cropping, the resultant thumbnails via the method Crop(x0, y0, x1, y1). The size of the cropped image is specified by the coordinates of the upper-left and lower-right corners within the resultant thumbnail, not the original large image. < % Set Jpeg = Server.CreateObject("Persits.Jpeg") Jpeg.Open Server.MapPath("t.jpg") jpeg.Crop 20, 30, jpeg.Width - 20, jpeg.Height - 10 jpeg.save Server.mappath("tt.jpg") Response.write("") %> 11、如何用AspJpeg组件创建安全码? 创建安全码原理上和创建水印差不多。 < % function make_randomize(max_len,w_n) 'max_len 生成长度,w_n:0 可能包含字母,1:只为数字 randomize for intcounter=1 to max_len whatnext=int((1-0+1)*rnd+w_n) if whatnext=0 then upper=122 lower=97 else upper=57 lower=48 end if strnewpass=strnewpass & chr(int((upper-lower+1)*rnd)+lower) next make_randomize=strnewpass end function '生成安全码的图片。 random_num=make_randomize(4,1) ''生成4位数字的安全码 session("random_num")=random_num '为么调用session,没有session的安全码是完全没有意义的。呵呵 . Set Jpeg = Server.CreateObject("Persits.Jpeg") '调用组件 Jpeg.Open Server.MapPath("t.jpg") '打开准备的图片 Jpeg.Canvas.Font.Color = &HFFFFFF Jpeg.Canvas.Font.Family = "Arial Black" Jpeg.Canvas.Font.Bold = false Jpeg.Canvas.PrintText 0, -2, random_num jpeg.save Server.MapPath("tt.jpg") '保存 %> 12、如何让AspJpeg组件支援数据库? 图片存进数据库只能以二进制数据保存,这里即利用AspJpeg的Binary方法,下面以两个AspJpeg用户手册上的代码为例,具体请参考AspJpeg用户手册: Opening Images from Memory < % ' Using ADO, open database with an image blob strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/aspjpeg.mdb") Set rs = Server.CreateObject("adodb.recordset") SQL = "select image_blob from images2 where id = " & Request("id") rs.Open SQL, strConnect, 1, 3 Set Jpeg = Server.CreateObject("Persits.Jpeg") ' Open image directly from recordset Jpeg.OpenBinary rs("image_blob").Value ' Resize jpeg.Width = Request("Width") ' Set new height, preserve original aspect ratio jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth Jpeg.SendBinary rs.Close %> Output to Memory < % ... Set rs = Server.CreateObject("adodb.recordset") rs.Open "images", strConnect, 1, 3 rs.AddNew rs("image_blob").Value = Jpeg.Binary rs.Update ... %>

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧