Cocoa Can';t在屏幕保护程序中加载石英动画:“;您不能在此计算机上使用XXX屏幕保护程序“;

Cocoa Can';t在屏幕保护程序中加载石英动画:“;您不能在此计算机上使用XXX屏幕保护程序“;,cocoa,osx-snow-leopard,quartz-graphics,screensaver,quartz-composer,Cocoa,Osx Snow Leopard,Quartz Graphics,Screensaver,Quartz Composer,我编写了一个简单的屏幕保护程序,使用QCView加载Quartz动画。但是,当我在雪豹上安装它时,它会出现在屏幕保护程序预览中,并显示一条消息:“您不能在此计算机上使用XXX屏幕保护程序…”。如果我注释掉loadCompositionFromFile行(但保持Quartz框架链接),就可以了。我也可以将石英动画本身用作屏幕保护程序。因此,将qtz文件加载到QCView是一个问题。如有任何想法,将不胜感激 谢谢, Pat我的猜测是一个32位二进制文件被馈送到一个64位进程,反之亦然 我猜是32位二

我编写了一个简单的屏幕保护程序,使用QCView加载Quartz动画。但是,当我在雪豹上安装它时,它会出现在屏幕保护程序预览中,并显示一条消息:“您不能在此计算机上使用XXX屏幕保护程序…”。如果我注释掉loadCompositionFromFile行(但保持Quartz框架链接),就可以了。我也可以将石英动画本身用作屏幕保护程序。因此,将qtz文件加载到QCView是一个问题。如有任何想法,将不胜感激

谢谢,
Pat

我的猜测是一个32位二进制文件被馈送到一个64位进程,反之亦然

我猜是32位二进制文件被馈送到64位进程,反之亦然

是否使用不支持的GC进行构建?屏幕保护程序引擎在Snow Leopard上以64位运行时运行垃圾收集

有关完整的要求集,请参见

请注意,即使您只支持Snow Leopard,如果您想使用测试应用程序,如,您仍然应该在非发布版本的构建配置中构建32位GC支持或-不支持(非必需)


另外,您在QCView中托管石英合成图有什么原因吗?屏幕保护程序可以直接处理石英成分。

是否使用不支持的GC构建?屏幕保护程序引擎在Snow Leopard上以64位运行时运行垃圾收集

有关完整的要求集,请参见

请注意,即使您只支持Snow Leopard,如果您想使用测试应用程序,如,您仍然应该在非发布版本的构建配置中构建32位GC支持或-不支持(非必需)



另外,您在QCView中托管石英合成图有什么原因吗?屏幕保护程序可以直接处理石英合成。

预览屏幕保护程序时是否会显示控制台消息?不,恐怕不会。我在控制台上看到的唯一消息是一些关于首选项的警告。谢谢。在预览屏幕保护程序时,是否会显示控制台消息?不,恐怕不会。我在控制台上看到的唯一消息是一些关于首选项的警告。谢谢。是的,但是我的屏幕保护程序被编译成64位的目标,没有石英动画它运行得很好。我四处查看了一下,但在Quartz Composer上没有看到任何输出QTZ文件的选项……您也尝试过将其编译为32位寻址吗?嗯,我对XCode不是很熟悉,但在选择i386和x86_64作为“活动体系结构”后,我尝试过创建干净的屏幕保护程序。除此之外,我还没有深入研究构建设置。我查看了/Library/System/Frameworks,看看是否有不同版本的Quartz框架用于链接。。。但我只看到一个。再次重申,如果我不将QTZ文件加载到QCView中,屏幕保护程序运行正常。QTZ文件本身作为一个屏幕保护程序运行很好。。。所以这很奇怪。谢谢。也许在你的第一个项目中尝试一些更简单的方法。有点刺耳?:)b) 我的意思是,我并不十分熟悉每一个obj-c构建选项、框架链接问题和雪豹怪癖,(是吗?)c)这实际上正是新手可能尝试的项目类型。。。这是大约3行代码添加到XCode生成的模板屏幕保护程序项目中。这显然是与Quartz有关的某种问题,这似乎是一个有效的问题,也不可能非常明显,因为到目前为止还没有答案:)是的,但我的屏幕保护程序被编译为64位目标,并且在没有Quartz动画的情况下运行良好。我四处查看了一下,但在Quartz Composer上没有看到任何输出QTZ文件的选项……您也尝试过将其编译为32位寻址吗?嗯,我对XCode不是很熟悉,但在选择i386和x86_64作为“活动体系结构”后,我尝试过创建干净的屏幕保护程序。除此之外,我还没有深入研究构建设置。我查看了/Library/System/Frameworks,看看是否有不同版本的Quartz框架用于链接。。。但我只看到一个。再次重申,如果我不将QTZ文件加载到QCView中,屏幕保护程序运行正常。QTZ文件本身作为一个屏幕保护程序运行很好。。。所以这很奇怪。谢谢。也许在你的第一个项目中尝试一些更简单的方法。有点刺耳?:)b) 我的意思是,我并不十分熟悉每一个obj-c构建选项、框架链接问题和雪豹怪癖,(是吗?)c)这实际上正是新手可能尝试的项目类型。。。这是大约3行代码添加到XCode生成的模板屏幕保护程序项目中。这显然是与石英有关的某种问题,这似乎是一个有效的问题,也不可能非常明显,因为到目前为止还没有答案:)我只为64位arch建造,并已将objc gc设置为“必需”。。。但很明显,引起错误的不是我的代码,而是与之相关联的石英代码。我收到的“您不能使用…”消息在加载该文档中所示的屏幕保护程序时不会出现,而仅在预览屏幕上显示为文本。。。显然,它是在屏幕保护程序开始执行并尝试加载QTZ文件后决定的。(这是一条相同的消息,但在我的例子中,它仅在运行后的预览中显示,而不是阻止您加载/选择的下拉消息)。通过将obj-c GC设置为unsupported,我可以重现文档讨论的问题,然后在加载我的保护程序时,我会收到该下拉消息。因此,我认为这与我编译代码的方式无关,但与Quartz链接或我的QTZ文件是如何生成的……在回答您的问题时,我之所以使用屏幕保护程序API是因为我想在退出屏幕时启动应用程序