C++ cli C++;虚(密封)函数 我在C++项目中使用DLL中的类。一切正常,直到

C++ cli C++;虚(密封)函数 我在C++项目中使用DLL中的类。一切正常,直到,c++-cli,sealed,method-call,C++ Cli,Sealed,Method Call,当尝试调用某个方法(在对象浏览器中列出)时,我得到一个错误,该方法不是名称空间的成员 经过调查,我注意到这个方法被列为“virtualvoidx()sealed” 有没有办法调用这样一个函数?我不明白为什么它是虚拟的和密封的,这本身就可以阻止您调用该函数。根据,sealed关键字专门用于虚拟方法 P> C++中的C++ CLI关键字(管理C++),具体是.NET,而不是C++。 函数上的sealed表示不能在派生类型中重写该方法 sealed并不意味着您不能调用该函数,我猜您的函数是priva

当尝试调用某个方法(在对象浏览器中列出)时,我得到一个错误,该方法不是名称空间的成员

经过调查,我注意到这个方法被列为“virtualvoidx()sealed”


有没有办法调用这样一个函数?

我不明白为什么它是虚拟的和密封的,这本身就可以阻止您调用该函数。根据,sealed关键字专门用于虚拟方法

<> P> C++中的C++ CLI关键字(管理C++),具体是.NET,而不是C++。 函数上的
sealed
表示不能在派生类型中重写该方法


sealed
并不意味着您不能调用该函数,我猜您的函数是
private

作为将来的参考,我刚刚收到企业库支持团队的回复。他们发布了以下链接:

托管C++与IDISPLE 我正在使用新的托管C++/CLI语法编写一些代码,遇到以下错误:

错误C2039:“Dispose”:不是“System::IDisposable”的成员

我开始使用的代码是:

image->Dispose(); // image implements IDisposable
这给了我同样的编译器错误,所以我想消除一个类/名称空间错误,所以我重写如下:

((IDisposable ^)image)->Dispose();
这就产生了上述错误。哎呀

以下是修复方法:

使用delete。托管C++现在在终结器中隐藏处理()。只需删除对象,其余的就由它处理。奇怪


这真的很有效

密封与C++无关。您正在使用C++-CLI。如果是,请更新您的标记,以便具有适当知识的人员可以找到问题。我指的是Microsoft企业库日志块中LogWriter类的Dispose函数。这个类的所有其他方法和属性都可以毫无问题地工作,我在这一个中看到的唯一区别就是上面提到的。我试着像这样使用它:“writer->Dispose();”,我得到一个错误,该方法不是Microsoft::Practices::EnterpriseLibrary::Logging::LogWriter的成员。感谢lotNote,您可以通过预加四个空格(额外的空格保留为缩进)将代码格式化为代码;编辑器工具栏中的“101\n010”按钮将为您执行此操作。恭喜你找到了答案。