我使用Visual Studio 2010 (.NET 4)。我需要创建一个 COM对象(在 C# 中)并且不知道如何开始(使用什么类型的项目等)
请您参考如下方法:
好的,我找到了解决方案,为了共同利益,我将其写在这里。
- 以管理员身份启动 VS2010。
- 打开一个类库项目(例如maple - MyProject)。
- 向项目添加新接口(interface)(请参见下面的示例)。
- 将
using System.Runtime.InteropServices;
添加到文件 - 向界面添加属性 InterfaceType、Guid。
- 您可以使用“工具”->“生成 GUID”(选项 4)生成 Guid。
- 添加一个实现该接口(interface)的类。
- 将属性 ClassInterface、Guid、ProgId 添加到接口(interface)。
ProgId 约定为 {namespace}.{class} - 在项目的 Properties 文件夹下的 AssemblyInfo 文件中,将 ComVisible 设置为 true。
- 在项目属性菜单的“构建”选项卡中标记“注册 COM 互操作”
- 构建项目
现在您可以通过使用 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()
输出将是:
我以发布脚本为生