visual-studio-2010 - 如何在 C# 中创建 COM 可见类?

标签 visual-studio-2010 c#-4.0 com

我使用Visual Studio 2010 (.NET 4)。我需要创建一个 COM对象(在 C# 中)并且不知道如何开始(使用什么类型的项目等)

最佳答案

好的,我找到了解决方案,为了共同利益,我将其写在这里。

  1. 以管理员身份启动 VS2010。
  2. 打开一个类库项目(例如maple - MyProject)。
  3. 向项目添加新接口(interface)(请参见下面的示例)。
  4. using System.Runtime.InteropServices; 添加到文件
  5. 向界面添加属性 InterfaceType、Guid。
  6. 您可以使用“工具”->“生成 GUID”(选项 4)生成 Guid。
  7. 添加一个实现该接口(interface)的类。
  8. 将属性 ClassInterface、Guid、ProgId 添加到接口(interface)。
    ProgId 约定为 {namespace}.{class}
  9. 在项目的 Properties 文件夹下的 AssemblyInfo 文件中,将 ComVisible 设置为 true。
  10. 在项目属性菜单的“构建”选项卡中标记“注册 COM 互操作”
  11. 构建项目

现在您可以通过使用 COM 对象的 ProgID 来使用它。

示例: C# 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Runtime.InteropServices;

namespace Launcher
{

    [InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
    public interface ILauncher
    {
        void launch();
    }

    [ClassInterface(ClassInterfaceType.None), Guid("YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYY"), ProgId("Launcher.Launcher")]
    public class Launcher : ILauncher
    {
        private string path = null;

        public void launch()
        {
            Console.WriteLine("I launch scripts for a living.");

        }

    }
}

和使用 COM 的 VBScript:

设置 obj = createObject("PSLauncher.PSLauncher") obj.launch()

输出将是:

我以发布脚本为生

关于visual-studio-2010 - 如何在 C# 中创建 COM 可见类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3360160/

相关文章:

c# - 无法在文件中写入AppedText

windows - IWebBrowser2 和多线程单元?

c++ - 如何在Excel Chart中禁用自动创建SeriesCollection

c++ - 将 DLL 制作成 COM 组件

c++ - Visual Studio C++ 2010 中的自动创建实现

c++ - 如何摆脱 "BSCMAKE : error BK1500: Internal error"编译错误

c++ - 让 IBO 工作

c# - 如何在winforms的datagridview的当前单元格中添加椭圆按钮和文本框

c# - 在 C# 中从 MSSQL 输出列的内容

c# - 在控制台应用程序中解析粘贴的文本