如何从C/C++调用.NET程序集?

cwi*_*ick 26 .net c# c++

假设我正在用C++和C#编写应用程序.我想用C++编写低级部分并在C#中编写高级逻辑.如何从我的C++程序加载.NET程序集并开始调用方法并访问我的C#类的属性?

Kev*_*vin 13

你应该真正研究C++/CLI.它使这样的任务几乎无足轻重.

否则,您将必须围绕C#代码生成COM包装器,并让您的C++应用程序调用COM包装器.


Fra*_* B. 12

[Guid("123565C4-C5FA-4512-A560-1D47F9FDFA20")]
public interface IConfig
{
    [DispId(1)]
    string Destination{ get; }

    [DispId(2)]
    void Unserialize();

    [DispId(3)]
    void Serialize();
}

[ComVisible(true)]
[Guid("12AC8095-BD27-4de8-A30B-991940666927")]
[ClassInterface(ClassInterfaceType.None)]
public sealed class Config : IConfig
{
    public Config()
    {
    }

    public string Destination
    {
        get { return ""; }
    }

    public void Serialize()
    {
    }

    public void Unserialize()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

在那之后,你需要重新装配你的装配.Regasm将添加必要的注册表项,以允许您的.NET组件被视为COM组件.之后,您可以使用与其他任何COM组件相同的方式在C++中调用.NET组件.