c++ - CDirScan 函数 NextL 引发 KERN-EXEC 0

标签 c++ mobile symbian s60

CDirScan 函数 NextL 引发“Main Panic KERN-EXEC 0”,如果它没有立即被调用 SetScanDataL()(即,如果它在另一个事件之后在同一个事件对象中稍后被调用)

f1() - 在事件对象中调用

iDirScan = CDirScan::NewLC(aFs);
iDirScan->SetScanDataL(aPath, 
    KEntryAttDir|KEntryAttMatchExclusive, 
    ESortNone, CDirScan::EScanDownTree);
//wait for some asynchronous event

f2() - 在同一个事件对象中调用,在一些异步事件之后

CDir* dir = NULL;
TRAPD(error, iDirScan->NextL(dir)); -->> "Main Panic KERN-EXEC 0"

如果在等待某个异步事件之前调用 iDirScan->NextL(),则一切正常。

为什么 CDirScan 变量失去了有效性?请注意,异步事件无关,它可以是一个简单的虚拟计时器。

最佳答案

我写了一些测试代码试图重现这个但没成功。

通常,KERN-EXEC 0 panic 通常是由陈旧的 R 对象句柄引起的。例如,确保您传递给 CDirScanRFs 句柄没有过早关闭。

关于c++ - CDirScan 函数 NextL 引发 KERN-EXEC 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1857458/

相关文章:

c++ - std::bind 涉及到临时类拷贝时的模板推导

c++ - 有没有办法在 Qt 中一次设置多个图标的图标大小(即小部件中的所有图标)?

jquery - 是否可以在移动设备上显示页面之前在页面上设置滚动顶部?

css - 属性 "@media screen and (orientation:landscape)"也适用于台式机?

c++ - 关于在 symbian 中使用 TCP/IP 写入

C++ Stringstream 给变量赋了错误的值?

c++ - 是否应该使用 unique_ptr 来更轻松地实现 "move"语义?

android - 手机浏览器如何管理cookie?

java - 在 Symbian S60 中在 PC 启动时启动应用程序

javascript - symbian 的位置数据