c# – 使用托管代码中的非托管代码
发布时间:2020-12-15 08:33:10 所属栏目:百科 来源:网络整理
导读:我的项目是在MFC中开发的,这是一个未经编码的代码.现在我需要通过重用大多数MFC类在C#中创建一个类似的应用程序. 是否可以直接从MFC dll导出class / struct / enum,这样我就可以使用dllimport在我的C#中导入它并使用它. 解决方法 是的,很有可能.你只需要小心
我的项目是在MFC中开发的,这是一个未经编码的代码.现在我需要通过重用大多数MFC类在C#中创建一个类似的应用程序.
是否可以直接从MFC dll导出class / struct / enum,这样我就可以使用dllimport在我的C#中导入它并使用它. 解决方法
是的,很有可能.你只需要小心这些类型.许多翻译非常好,但有些是古怪的.
您要搜索的概念的名称是COM interop.请参阅此处获取getting started tutorial.当然,MFC DLL必须支持可从.NET访问COM.您需要使用支持的适当COM接口重建MFC DLL. 这是一个完整的MSDN overview of COM Automation,包含示例项目的链接. 这里是一个simple but to-the-point CodeProject sample,它精确地演示了如何在.NET程序集中使用COM DLL. 伟大的pinvoke reference here.用于访问本机Win32 API. 编辑:另一个想法 如果您无法重建MFC DLL(您没有IDE的源版本或正确版本),您可以在MFC或原始C/C++中创建COM“包装”DLL,它将导入标准中的MFC DLL,以COM前的方式,然后公开您需要的对象和方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |