【问题标题】:Porting code from MFC to C#将代码从 MFC 移植到 C#
【发布时间】:2012-10-31 16:04:37
【问题描述】:

我将一些代码从 c++ MFC 更改为 c# 并有几个问题:

1) 在 MFC 中,我有一个 CByteArray 变量。 在c#中我应该给这个变量什么类型?

2) 我有一个必须使用的 c# 接口。 在 MFC 中,我使用 CoCreate 连接到它:

hRet = m_pConverterImpl.CoCreate ( CLSID_Converter, IID_IConverter );

我应该如何从c#连接到这个接口?

【问题讨论】:

    标签: c# interface mfc porting


    【解决方案1】:
    1. 您可以使用ListList<byte>。根据您的使用情况,MemoryStream 也可能合适。
    2. 这是一个COM接口。 Add a reference 将其添加到您项目中的 DLL 中,VisualStudio 将为您创建一个合适的 C# 包装类。

    【讨论】:

      【解决方案2】:

      可以使用 Activactor.CreateInstance(Type.GetTypeFromCLSID(clsId));

      【讨论】:

      • 当 clsid 可变时很有用。但是,代码将被移植,因此在运行时确定它听起来很糟糕。