C#调用C++ ATL COM对象:创建与调用教程

4星 · 超过85%的资源 需积分: 10 32 下载量 144 浏览量 更新于2024-09-13 2 收藏 658KB DOCX 举报
本文主要介绍了如何使用Visual Studio 2010创建一个ATL COM对象,然后使用C#调用该C++编写的DLL。主要涉及的知识点包括ATL项目创建、COM接口定义、方法实现、COM注册以及C#应用程序中调用COM组件。 一、创建ATL COM对象 在Visual Studio 2010中,创建一个新的VC++ ATL项目名为ADDTest。通过项目向导,添加一个ATL简单对象,并命名为MyAdd。在项目中添加ISupportErrorInfo接口以支持错误信息处理。在ADDTest.idl文件中声明接口IMyAdd,包含一个名为Add的方法,接收两个整数参数a和b,返回一个整数c。在MyAdd.h和MyAdd.cpp文件中分别实现接口方法的声明和定义。 二、COM对象注册 生成COM DLL文件后,需要以管理员权限运行CMD,使用regsvr32命令进行注册,例如`regsvr32 D:\Project\ADDTest\Debug\ADDTest.dll`。注册成功后,后续编译若提示未注册,一般无需再次执行注册操作。 三、C#调用COM对象 1. 创建一个新的C# WPF项目。 2. 在项目中添加对生成的COM组件的引用,即ADDTestLib。 3. 在C#代码中,通过new操作符实例化COM对象,并调用其Add方法,如下所示: ```csharp private void tbnCal_Click(object sender, RoutedEventArgs e) { // 创建COM对象 ADDTestLib.MyAdd myAdd = new ADDTestLib.MyAdd(); // 调用COM方法,将文本框中的值转换为整数并计算 int result = myAdd.Add(int.Parse(txtNum1.Text), int.Parse(txtNum2.Text)); // 显示结果 lblResult.Content = result.ToString(); } ``` 总结:这篇文章详细讲述了从创建ATL COM对象到在C#中调用该对象的过程,涵盖了ATL项目设置、COM接口设计、DLL注册及C#应用中的COM互操作性。对于开发者来说,这是一个很好的学习COM编程和跨语言调用的实例。