1

我有一个工作的 Cocos2d-x 项目,在 XCode 中开发并基于版本 cocos2d-1.0.1-x-0.13.0-beta

现在我必须让它与 Marmalade 一起工作(在 Windows pc 上使用 VS Express),我对它完全陌生。我设法设置了项目并且源代码编译得很好,但是当我启动项目时,当调用 CCCallFuncO 时,我得到一个神秘的异常:

DEFAULT: s3eDeviceHandleException: 1 0x00000000 0x00000000
Memory exception (11) attempting to access: 00000000
S3E runtime is not handling this exception
First-chance exception at 0x00000000 in s3e_simulator_debug.exe: 0xC0000005: Access violation.
Unhandled exception at 0x00000000 in s3e_simulator_debug.exe: 0xC0000005: Access violation reading location 0x00000000.

这发生在类 CCActionInstant 中,在方法 CCCallFuncO::execute 中,在指令上:

(m_pSelectorTarget->*m_pCallFuncO)(m_pObject);

据我所知,所有涉及的对象都是正确且合理的,证明它完全有效并且在 XCode 中使用相同的代码并且没有 Marmalade 是有意义的。

可能导致此问题的这两种环境之间有什么区别?任何有果酱经验的人都可以给我一个线索,让我知道我应该寻找什么?

4

1 回答 1

0

我正在回答我自己的问题,只是为了让其他开发人员知道我是如何解决这个问题的。

事实证明,Marmalade 模拟器的问题与代码无关。如果您遇到与我类似的问题 - 我的意思是在尝试在橘子酱模拟器上运行您的应用程序时遇到一个非常未指定的异常 - 在尝试其他任何事情之前,我建议您删除橘子酱子文件夹并重新生成项目来自 .mkb 文件。这显然会清除一些可能与您的实际代码不同步的缓存和预编译对象。删除 marmalade 子文件夹会强制编译器重新创建所有内容。

于 2012-09-18T17:57:17.403 回答