C++/CLI 包装器尝试使用 MFC CObject 继承

Posted

技术标签:

【中文标题】C++/CLI 包装器尝试使用 MFC CObject 继承【英文标题】:C++/CLI wrapper trying to use MFC CObject inheritance 【发布时间】:2012-04-25 18:00:26 【问题描述】:

使用 VS2010,我正在将大量 .h 文件和一个 .lib 从原生 C++(使用 MFC)包装到 C++/CLI,最终用作 C# 中的引用 .dll。

在创建包装器时,我收到编译器错误,指出 CObject 未定义。在项目属性中,我将使用 MFC 设置为在静态库和运行时库中使用 MFC 来进行多线程调试 DLL (/MDd)。我正在链接 .lib 并包含 .h 文件。编译器错误出现在 .h 文件中,其中一些类继承自 CObject。

编译器不应该知道CObject吗?

【问题讨论】:

托管 ref 类不能继承自 CObject 等本机类。 【参考方案1】:

您是否#包括 MFC 标头? afx.h、afxwin.h 之类的? #include 可能在您的本机 C++ 项目的 stdafx.h 中,并且没有被复制到您在 C++/CLI 项目中使用的头文件中。

【讨论】:

是的,我忘记了 stdafx.h 中的 Afx.h 和 afxwin.h 谢谢。

以上是关于C++/CLI 包装器尝试使用 MFC CObject 继承的主要内容,如果未能解决你的问题,请参考以下文章

MFC dll 中的访问冲突(用 C++/CLI 包装)从 C# 程序开始

如何为非托管 c dll 创建 c++\cli 包装器

C++/CLI 包装器实现错误

本机 C++ 程序在使用 C++/CLI 和 C# 互操作 DLL 启动时崩溃

通过 CLI 包装器在非托管 C++ 中使用 C#.NET Winform - 需要线程?

Visual Studio:C++\CLI 包装器程序集路径依赖问题