假设我正在用C++和C#编写应用程序.我想用C++编写低级部分并在C#中编写高级逻辑.如何从我的C++程序加载.NET程序集并开始调用方法并访问我的C#类的属性?
你应该真正研究C++/CLI.它使这样的任务几乎无足轻重.
否则,您将必须围绕C#代码生成COM包装器,并让您的C++应用程序调用COM包装器.
[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() { } }
在那之后,你需要重新装配你的装配.Regasm将添加必要的注册表项,以允许您的.NET组件被视为COM组件.之后,您可以使用与其他任何COM组件相同的方式在C++中调用.NET组件.