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++ 程序在使用 C++/CLI 和 C# 互操作 DLL 启动时崩溃