C++和C#编写调用COM组件
2010-05-27 20:37:10 来源:WEB开发网程序代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace AddCom
{
//可以通过//菜单的 “工具/guid生成”。
//注意要选择Define Guid{….}格式,并全//部保存下来,保存到哪都行,记事本呀什么的。
//因为在做VC程序/////////的时候要用到的。
[Guid("298D881C-E2A3-4638-B872-73EADE25511C")]
public interface AddComInterface
{
[DispId(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 : AddComInterface
{
public AddComService()
{
}
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 CUseComDlg::OnButtonUse()
{
// TODO: Add your control notification handler code here
int 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:%f",dresult,fresult);
MessageBox(strResult,"计算结果",MB_OK);
CoUninitialize();
}
更多精彩
赞助商链接