c#创建vc可调用的com组件方法分享

下面我就来详细讲解一下“C#创建VC可调用的COM组件方法分享”的完整攻略。

1. 确定组件需求

首先,我们需要确定下自己需要开发什么样的组件,这是COM组件开发的第一步。根据需求确定组件接口和类,建议先画一张组件结构图,方便我们更好地理解组件整体架构。

2. 创建COM组件项目

  1. 打开Visual Studio创建新的C# Class Library项目,选择.NET框架版本;
  2. 右键项目 -> 属性 -> 应用程序 -> 程序集信息,勾选“将程序集暴露给COM”;
  3. 修改程序集名称和COM可见名称;
  4. 新增或修改COM接口和类,注释接口和类名称及接口方法。

3. 实现COM接口

新建类实现COM接口,并重写接口中所有的方法,注意COM接口方法的返回值类型要使用COM可支持的类型,并避免使用C#中的特定类型。在实现COM接口方法时,可以调用现有的DLL、ActiveX、OCX组件或者调用Win32 API。

下面是一个示例代码:

using System.Runtime.InteropServices;

[Guid("5B45201D-B7AE-4b4e-85BA-B1A1E513A476")]
public interface ITest
{
    [DispId(1)]
    string GetName();
}

[Guid("5807D10D-EADE-40ea-BFE1-2074E0896A71")]
[ClassInterface(ClassInterfaceType.None)]
public class Test : ITest
{
    public string GetName()
    {
        return "Hello, COM";
    }
}

接着,我们需要对项目进行编译,生成DLL文件。

4. 注册COM组件

COM组件编译完成后,需要进行注册才能被调用。注册有两种方式:一种是使用Visual Studio自带的工具进行注册,另一种是使用Windows提供的Regsvr32工具进行注册。

使用Visual Studio注册方法:

  1. 右键项目 -> 属性 -> 生成事件 -> 自定义命令行,在“后期生成事件”中添加以下代码:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" $(TargetPath) /tlb:$(TargetDir)$(TargetName).tlb /codebase

注意:上面的路径需要根据本机实际情况进行修改。

使用Regsvr32注册方法:

  1. 开启命令行控制台,输入命令进行注册:
regsvr32 [DLL Path]

5. 调用COM组件

在项目终端或者其他项目中,可以像调用其他COM组件一样,使用C#来调用已注册的COM组件。

以下是一个示例代码:

Type comType = Type.GetTypeFromProgID("Test.Test");
ITest com = Activator.CreateInstance(comType) as ITest;
string name = com.GetName();

以上就是“C#创建VC可调用的COM组件方法分享”的完整攻略,希望能对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#创建vc可调用的com组件方法分享 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • c#字符串去掉空格的二种方法(去掉两端空格)

    当我们用C#编写程序时,经常需要对字符串进行处理,比如去掉字符串两端的空格。下面分别介绍两种方法: 方法一:使用Trim()函数 C#的String类内置了Trim()函数,可以用来去掉字符串两端的空格。使用方法非常简单,只需要在需要处理的字符串后面添加.Trim()即可。 string str = " Hello World! "; s…

    C# 2023年6月8日
    00
  • Unity 百度AI实现人像动漫化效果

    现在开始为大家讲解“Unity 百度AI实现人像动漫化效果”的完整攻略。 1. 实现思路 本例使用Unity结合百度AI实现人像动漫化。实现的主要思路如下: 在Unity中引入百度AI SDK,并完成配置; 将需要进行动漫化的人像照片上传至服务器; 使用百度AI的人像动漫化API来实现人像动漫化; 将动漫化后的图片下载回本地; 在Unity中加载并显示动漫化…

    C# 2023年6月3日
    00
  • c#制作屏幕保护程序步骤(字幕屏保)

    以下是制作 C# 字幕屏保程序的完整攻略: 步骤1:创建新项目 首先,打开 Visual Studio 并创建一个新项目。在新项目对话框中,选择 “Windows Forms 应用程序”,然后在项目名称和位置部分命名并选择项目位置。 步骤2:窗口调整 在创建窗口后,需要对窗口进行一些调整以确保它适合作为屏幕保护程序。在窗口设计器中选择窗口控制,右键单击然后选…

    C# 2023年6月7日
    00
  • c#消息提示框messagebox的详解及使用

    C#消息提示框MessageBox的详解及使用 在C#编程中,提示信息是非常重要的,而MessageBox是处理提示信息的一种非常常见的方式。在本篇文章中,我们将深入探讨C#中的MessageBox,并介绍如何使用它来优化你的应用程序。 MessageBox对象 MessageBox是System.Windows.Forms命名空间的一部分,是一个弹出窗口,…

    C# 2023年6月7日
    00
  • C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    C#实现的Windows剪贴板监视器功能实例 前言 剪贴板是我们在使用电脑时几乎必然会用到的功能之一,而剪贴板监视器的作用就是拦截剪贴板的相关操作,我们可以通过监视剪贴板来实现一些功能,如:自动翻译剪贴板内容等。在本文中,将通过C#实现Windows剪贴板监视器的功能,并附带Demo源码以及详细讲解。 实现剪贴板监视器 1. 创建项目 首先,我们需要创建一个…

    C# 2023年6月8日
    00
  • C#使用GET、POST请求获取结果

    获取在线数据是许多C#应用程序的重要部分,而HTTP协议上的GET和POST请求是两种常见的请求方式。在C#中,可以使用HttpWebRequest类和HttpClient类来发送GET和POST请求并获取响应结果。 使用HttpWebRequest发送GET请求 HttpWebRequest是一个用于发送HTTP请求的类,可以用来发送GET、POST和其他…

    C# 2023年5月31日
    00
  • 在js中实现邮箱格式的验证方法(推荐)

    在 JavaScript 中实现邮箱格式验证方法 在 JavaScript 中,可以使用正则表达式实现邮箱格式验证。本攻略将详细介绍如何在 JavaScript 中实现邮箱格式验证方法,并提供多种验证方式的示例。 步骤一:编写正则表达式 在 JavaScript 中,可以使用正则表达式来验证邮箱格式。以下是一个简单的邮箱格式验证正则表达式: const em…

    C# 2023年5月17日
    00
  • Win11 Build 22000.778累计更新补丁(KB5014668)发布推送(附更新修复内容汇总)

    Win11Build22000.778累计更新补丁(KB5014668)是微软于2023年5月11日发布的一项重要更新,该更新修复了多项漏洞和问题,提高了系统的稳定性和安全性。以下是该更新的完整攻略,包括更新的修复内容汇总和示例。 更新修复内容汇总 Win11Build22000.778累计更新补丁(KB5014668)修复了以下问题: 修复了一个安全漏洞,…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部