ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:180.50KB ,
资源ID:11220521      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-11220521.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(COM组件编写与调用.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

COM组件编写与调用.doc

1、COM 组 件 编 写 与 调 用1、 在 VS2005 中 , C#编 写 DLL 并 使 用 C+调 用2、 在 VS2005 中 C#编 写 的 COM 组 件 , 使 用 VC6.0 调 用3、 在 VC6.0 中 编 写 COM 组 件 , 使 用 VS2005 C#调 用4、 在 VC6.0 中 编 写 COM 组 件 , 使 用 VC6.0 调 用其 中 每 个 类 型 都 写 了 两 个 程 序 , 一 个 为 COM 组 件 程 序 , 一 个 为 调 用 程 序程 序 实 现 :1、 在 VS2005 中 , C#编 写 DLL 并 使 用 C+调 用( 1) C#编 写

2、DLL 程 序建 立 C#编 写 的 DLL 程 序 AddDll, 项 目 类 型 为 : 类 库程 序 代 码 :using System;using System.Collections.Generic;using System.Text;namespace AddDllpublic class Addpublic int iadd(int a, int b)int c = a + b;return c;( 2) C+编 写 调 用 程 序建 立 C+的 Win32 控 制 台 应 用 程 序 UseDll, 项 目 类 型 为 : Win32 控 制 台 应 用 程序配 置 : 右 键

3、 点 击 解 决 方 案 资 源 管 理 器 中 的 UseDll, 选 择 “属 性 ”, 将 公 共 语 言 运 行库 支 持 设 置 为 “公 共 语 言 运 行 库 支 持 (/clr)”图 一 公 共 语 言 运 行 库 设 置程 序 代 码 :#include “stdafx.h“#include “stdio.h“#using “debugAddDll.dll“using namespace AddDll;int _tmain(int argc, _TCHAR* argv)int result;Add add = gcnew Add();result = add-iadd(10,

4、90);printf(“%d“,result);scanf(“%s“);return 0;2、 在 VS2005 中 C#编 写 的 COM 组 件 , 使 用 VC6.0 调 用( 1) VS2005 中 使 用 C#编 写 COM 组 件建 立 C#编 写 的 COM 组 件 , 项 目 类 型 为 类 库配 置 : 右 键 点 击 解 决 方 案 资 源 管 理 器 中 的 AddCom, 选 择 “属 性 ”, 选 择 “生 成 ”,选 择 “为 COM Interop 注 册 (_P)”打 开 AssemblyInfo.cs 文 件 , 设 置 assembly: ComVisibl

5、e(true)这 用 就 可 以 生 成 AddCom.tlb 文 件图 二 COM 生 成 设 置程 序 代 码 :using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace AddCom/可 以 通 过 /菜 单 的 “工 具 /guid 生 成 ”。/注 意 要 选 择 Define Guid.格 式 , 并 全 /部 保 存 下 来 , 保 存到 哪 都 行 , 记 事 本 呀 什 么 的 。/因 为 在 做 VC 程 序 /

6、的 时 候 要 用 到 的 。Guid(“298D881C-E2A3-4638-B872-73EADE25511C“) public interface AddComInterfaceDispId(1)int iadd(int a, int b);DispId(2)float ladd(float a, float b);Guid(“2C5B7580-4038-4d90-BABD-8B83FCE5A467“)ClassInterface(ClassInterfaceType.None)public class AddComService : AddComInterfacepublic AddC

7、omService()public int iadd(int a, int b)int c = 0;c = a + b;return c;public float ladd(float a, float b)float c = 0;c = a + b;return c;( 2) VC6.0 编 写 调 用 程 序使 用 VC6.0 编 写 建 立 MFC 应 用 程 序 UseCom, 项 目 类 型 为 MFC AppWizard(exe)在 stdafx.h 添 加 :#import “AddCom.tlb“using namespace AddCom;程 序 代 码 :void CUse

8、ComDlg:OnButtonUse() / TODO: Add your control notification handler code hereint dresult;float fresult;CString strResult;CoInitialize(NULL);/NULL 换 成 0 也 可 以AddCom:AddComInterfacePtr p_Add(_uuidof(AddComService);dresult = p_Add-iadd(1,2);fresult = p_Add-fadd(1.2,2.3);strResult.Format(“int:%d nfloat:%

9、f“,dresult,fresult);MessageBox(strResult,“计 算 结 果 “,MB_OK);CoUninitialize(); 3、 在 VC6.0 中 编 写 COM 组 件 , 使 用 VS2005 C#调 用( 1) VC6.0 编 写 COM使 用 VC6.0 建 立 COM 组 件 , 工 程 类 型 : ATL COM AppWizard程 序 代 码 :接 口 :interface IAdd : IDispatchid(1), helpstring(“method iadd“) HRESULT iadd(inint a, inint b, outint

10、* c);id(2), helpstring(“method fadd“) HRESULT fadd(infloat a, infloat b, outfloat * c);id(3), helpstring(“method isub“) HRESULT isub(inint a, inint b, outint * c);实 现 :STDMETHODIMP CAdd:iadd(int a, int b, int *c)/ TODO: Add your implementation code here*c = a + b;return S_OK;STDMETHODIMP CAdd:fadd(f

11、loat a, float b, float *c)/ TODO: Add your implementation code here*c = a + b;return S_OK;STDMETHODIMP CAdd:isub(int a, int b, int *c)/ TODO: Add your implementation code here*c = a - b;return S_OK;( 2) VS2005 使 用 C#编 写 调 用 程 序 ( 网 站 程 序 )使 用 VS2005 建 立 网 站 UseCom配 置 : 在 解 决 方 案 资 源 管 理 器 中 的 主 目 录

12、点 击 右 键 , 选 择 添 加 引 用 , 选 择COM, 添 加 刚 刚 建 立 的 AddCom 1.0 Type Library在 程 序 中 要 using 编 写 的 COM 组 件 : using ADDCOMLib;图 三 引 用 COM程 序 代 码 :using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using Syst

13、em.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using ADDCOMLib;public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e)protected void ButtonCom_Click(object sender, EventArgs e)Add add = new Add();int iresult;float fresult;int sresult;a

14、dd.IAdd(10, 20, out iresult);add.fadd(float)1.2,(float)2.3, out fresult);add.isub(100, 10, out sresult);TextBoxResult.Text = iresult.ToString();TextBoxRe2.Text = fresult.ToString();TextBoxRe3.Text = sresult.ToString();4、 在 VC6.0 中 编 写 COM 组 件 , 使 用 VC6.0 调 用( 1) VC6.0 编 写 COM 组 件使 用 VC6.0 建 立 COM 组

15、件 , 工 程 类 型 : ATL COM AppWizard程 序 代 码 :接 口 :interface IAdd : IDispatchid(1), helpstring(“method iadd“) HRESULT iadd(inint a, inint b, outint * c);id(2), helpstring(“method fadd“) HRESULT fadd(infloat a, infloat b, outfloat * c);id(3), helpstring(“method isub“) HRESULT isub(inint a, inint b, outint

16、* c);实 现 :STDMETHODIMP CAdd:iadd(int a, int b, int *c)/ TODO: Add your implementation code here*c = a + b;return S_OK;STDMETHODIMP CAdd:fadd(float a, float b, float *c)/ TODO: Add your implementation code here*c = a + b;return S_OK;STDMETHODIMP CAdd:isub(int a, int b, int *c)/ TODO: Add your impleme

17、ntation code here*c = a - b;return S_OK;( 2) VC6.0 编 写 调 用 程 序使 用 VC6.0 建 立 MFC 应 用 程 序 UseCOM, 调 用 刚 刚 建 立 的 COM 组 件将 上 面 程 序 AddCom 生 成 的 AddCom.dll 放 入 本 程 序 的 工 程 目 录 和 程 序 生 成 目 录 中在 StdAfx.h 中 加 入 :#import “AddCom.dll“ no_namespace程 序 代 码 :void CUseComDlg:OnBUTTONUse() / TODO: Add your control

18、 notification handler code hereCString strResult;CoInitialize(NULL);/NULL 换 成 0 也 可 以IAddPtr m_add = NULL;HRESULT hr = S_OK;hr = m_add.CreateInstance(_uuidof(Add);int d_a = 90;int d_b = 10;int d_c;int d_d;float f_a = 1;float f_b = 2;float f_c;m_add-_IAdd(d_a,d_b,m_add-fadd(f_a,f_b,m_add-isub(d_a,d_b,strResult.Format(“返 回 结 果 : %d; %f; %d“,d_c,f_c,d_d);MessageBox(strResult,“结 果 “,MB_OK);m_add.Release();m_add = NULL;CoUninitialize();

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报