我的项目是用 MFC 开发的,它是未管理的代码。现在我需要通过重用大多数 MFC 类,在 C# 中创建类似的应用程序。
是否可以直接从 MFC dll 导出类/结构/枚举,以便我可以使用 dllimport 将其导入到我的 C# 中并使用它。
是的,这很有可能。您只需要小心类型即可。许多翻译得很好,但有些则很古怪。
您正在搜索的概念的名称是 COM 互操作。请参阅此处入门教程。 http://www.beansoftware.com/NET-Tutorials/COM-Interop.aspx当然,MFC DLL 必须支持 COM 才能从 .NET 访问。您需要使用支持的正确 COM 接口重建 MFC DLL。
这是一个MSDN COM 自动化概述 http://msdn.microsoft.com/en-us/library/dt80be78(VS.80).aspx包含示例项目的链接。
这是一个简单但切题的 CodeProject 示例 http://www.codeproject.com/KB/cs/interopBycchrism.aspx它准确演示了如何在 .NET 程序集中使用 COM DLL。
Great pinvoke 参考这里。 http://www.pinvoke.net/也用于访问本机 Win32 API。
编辑:另一个想法
如果您无法重建 MFC DLL(您没有源代码或正确版本的 IDE),您可以在 MFC 或原始 C/C++ 中创建 COM“包装器”DLL,它将导入标准中的 MFC DLL, pre-COM 方式,然后公开您需要的对象和方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)