C++和C#编写调用COM组件Word文档下载推荐.docx

上传人:b****5 文档编号:19881605 上传时间:2023-01-11 格式:DOCX 页数:11 大小:147.57KB
下载 相关 举报
C++和C#编写调用COM组件Word文档下载推荐.docx_第1页
第1页 / 共11页
C++和C#编写调用COM组件Word文档下载推荐.docx_第2页
第2页 / 共11页
C++和C#编写调用COM组件Word文档下载推荐.docx_第3页
第3页 / 共11页
C++和C#编写调用COM组件Word文档下载推荐.docx_第4页
第4页 / 共11页
C++和C#编写调用COM组件Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C++和C#编写调用COM组件Word文档下载推荐.docx

《C++和C#编写调用COM组件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++和C#编写调用COM组件Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

C++和C#编写调用COM组件Word文档下载推荐.docx

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceAddDll

{

publicclassAdd

{

publicintiadd(inta,intb)

intc=a+b;

returnc;

}

}

(2)C++编写调用程序

建立C++的Win32控制台应用程序UseDll,项目类型为:

Win32控制台应用程序

配置:

右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”

图一公共语言运行库设置

#include"

stdafx.h"

stdio.h"

#using"

..\debug\AddDll.dll"

usingnamespaceAddDll;

int_tmain(intargc,_TCHAR*argv[])

intresult;

Add^add=gcnewAdd();

result=add->

iadd(10,90);

printf("

%d"

result);

scanf("

%s"

);

return0;

(1)VS2005中使用C#编写COM组件

建立C#编写的COM组件,项目类型为类库

右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COMInterop注册(_P)”

打开AssemblyInfo.cs文件,设置[assembly:

ComVisible(true)]

这用就可以生成AddCom.tlb文件

图二COM生成设置

usingSystem.Runtime.InteropServices;

namespaceAddCom

//可以通过//菜单的“工具/guid生成”。

//注意要选择DefineGuid{….}格式,并全//部保存下来,保存到哪都行,记事本呀什么的。

//因为在做VC程序/////////的时候要用到的。

[Guid("

298D881C-E2A3-4638-B872-73EADE25511C"

)]

publicinterfaceAddComInterface

[DispId

(1)]

intiadd(inta,intb);

[DispId

(2)]

floatladd(floata,floatb);

2C5B7580-4038-4d90-BABD-8B83FCE5A467"

)]

[ClassInterface(ClassInterfaceType.None)]

publicclassAddComService:

AddComInterface

publicAddComService()

intc=0;

c=a+b;

publicfloatladd(floata,floatb)

floatc=0;

(2)VC6.0编写调用程序

使用VC6.0编写建立MFC应用程序UseCom,项目类型为MFCAppWizard(exe)

在stdafx.h添加:

#import"

AddCom.tlb"

usingnamespaceAddCom;

voidCUseComDlg:

:

OnButtonUse()

//TODO:

Addyourcontrolnotificationhandlercodehere

intdresult;

floatfresult;

CStringstrResult;

CoInitialize(NULL);

//NULL换成0也可以

AddCom:

AddComInterfacePtrp_Add(__uuidof(AddComService));

dresult=p_Add->

iadd(1,2);

fresult=p_Add->

fadd(1.2,2.3);

strResult.Format("

int:

%d\nfloat:

%f"

dresult,fresult);

MessageBox(strResult,"

计算结果"

MB_OK);

CoUninitialize();

(1)VC6.0编写COM

使用VC6.0建立COM组件,工程类型:

ATLCOMAppWizard

接口:

interfaceIAdd:

IDispatch

[id

(1),helpstring("

methodiadd"

)]HRESULTiadd([in]inta,[in]intb,[out]int*c);

[id

(2),helpstring("

methodfadd"

)]HRESULTfadd([in]floata,[in]floatb,[out]float*c);

[id(3),helpstring("

methodisub"

)]HRESULTisub([in]inta,[in]intb,[out]int*c);

};

实现:

STDMETHODIMPCAdd:

iadd(inta,intb,int*c)

Addyourimplementationcodehere

*c=a+b;

returnS_OK;

fadd(floata,floatb,float*c)

isub(inta,intb,int*c)

*c=a-b;

(2)VS2005使用C#编写调用程序(网站程序)

使用VS2005建立网站UseCom

在解决方案资源管理器中的主目录点击右键,选择添加引用,选择COM,添加刚刚建立的AddCom1.0TypeLibrary

在程序中要using编写的COM组件:

usingADDCOMLib;

图三引用COM

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:

System.Web.UI.Page

protectedvoidPage_Load(objectsender,EventArgse)

protectedvoidButtonCom_Click(objectsender,EventArgse)

Addadd=newAdd();

intiresult;

intsresult;

add.IAdd(10,20,outiresult);

add.fadd((float)1.2,(float)2.3,outfresult);

add.isub(100,10,outsresult);

TextBoxResult.Text=iresult.ToString();

TextBoxRe2.Text=fresult.ToString();

TextBoxRe3.Text=sresult.ToString();

(1)VC6.0编写COM组件

使用VC6.0建立MFC应用程序UseCOM,调用刚刚建立的COM组件

将上面程序AddCom生成的AddCom.dll放入本程序的工程目录和程序生成目录中

在StdAfx.h中加入:

AddCom.dll"

no_namespace

OnBUTTONUse()

IAddPtrm_add=NULL;

HRESULThr=S_OK;

hr=m_add.CreateInstance(__uuidof(Add));

intd_a=90;

intd_b=10;

intd_c;

intd_d;

floatf_a=1;

floatf_b=2;

floatf_c;

m_add->

_IAdd(d_a,d_b,&

d_c);

fadd(f_a,f_b,&

f_c);

isub(d_a,d_b,&

d_d);

返回结果:

%d;

%f;

%d"

d_c,f_c,d_d);

结果"

m_add.Release();

m_add=NULL;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1