我扩展了类wxFileSystemHandler
以处理我在我的应用程序中使用的特殊协议。我调用了wxFileSystemHandler::CanOpen()
的实现,识别协议并返回 TRUE 。但我的wxFileSystemHandler::OpenFile()
实现永远不会被调用。我检查了wxWidgets代码,发现CanOpen()
成员函数是由我注册的指针调用的。但是当调用OpenFile()
时,它们将指针传递给wxFileSystem::MakeLocal()
成员函数,该函数试图在哈希映射中获取另一个指针,显然,这不是我的实例。
有人之前遇到过这样的问题吗?
答案 0 :(得分:0)
不确定你究竟在做什么,即你何时期望调用你的处理程序,但无论如何{@ 1}}如果你将对象标记为动态的话,应该创建同一个类的新实例使用wxRTTI宏创建并使用其他方式给出的对象。因此,如果您确实需要重用相同的对象,则可能需要在其类中使用MakeLocal()
。但OTOH为什么要制作一个新实例是一个问题?