我有一个使用XCode开发且基于版本cocos2d-1.0.1-x-0.13.0-beta的有效Cocos2d-x项目
现在,我必须使其与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,它是完全有效的并且有意义。
可能导致此问题的这两种环境之间有什么区别?
谁拥有果酱的经验,可以给我一个线索,我应该寻找什么?
最佳答案
我在回答自己的问题只是为了让其他开发人员知道我是如何解决此问题的。
事实证明,Marmalade模拟器的问题与代码无关。
如果您遇到类似于我的问题-类似地,我的意思是,您尝试在果酱模拟器上运行您的应用程序时遇到非常明确的异常-在尝试其他方法之前,我建议您删除果酱子文件夹并重新生成项目从.mkb文件。
显然,这消除了一些缓存和预编译的对象,这些对象可能与您的实际代码不同步。
删除橘子果酱子文件夹将强制编译器重新创建所有内容。
关于iphone - Cocos2d-x和果酱-CCCallFuncO的麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12325347/