我目前在我的标题代码中收到此错误消息,我不确定原因:
“错误:'QTVisualContextRef'之前的预期说明符限定符列表”
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
#import <OpenGL/OpenGL.h>
#import <QuartzCore/QuartzCore.h>
#import <CoreVideo/CoreVideo.h>
@interface MyRecorderController : NSObject {
IBOutlet QTCaptureView *mCaptureView;
IBOutlet NSPopUpButton *videoDevicePopUp;
NSMutableDictionary *namesToDevicesDictionary;
NSString *defaultDeviceMenuTitle;
CVImageBufferRef mCurrentImageBuffer;
QTCaptureDecompressedVideoOutput *mCaptureDecompressedVideoOutput;
QTVisualContextRef qtVisualContext; // the context the movie is playing in
// filters for CI rendering
CIFilter *colorCorrectionFilter; // hue saturation brightness control through one CI filter
CIFilter *effectFilter; // zoom blur filter
CIFilter *compositeFilter; // composites the timecode over the video
CIContext *ciContext;
QTCaptureSession *mCaptureSession;
QTCaptureMovieFileOutput *mCaptureMovieFileOutput;
QTCaptureDeviceInput *mCaptureDeviceInput;
}
@end
在我通过其他代码看到的示例中(例如Cocoa Video Tutorial)我没有看到他们的代码与我的代码有任何区别。如果有人能够指出这个错误是如何发生的那么会很棒。 谢谢堆! :)
答案 0 :(得分:6)
如果您要编译为64位应用程序,则无法使用QTVisualContextRef。您需要将应用程序编译为32位。
Apple还没有完全充实QTKit到64位......
答案 1 :(得分:1)
这是一个GCC错误,这意味着编译器不知道令牌QTVisualContextRef
。这确实是一个相当糟糕的错误信息。您需要添加正确的#import
,以便向编译器传授此类型。它是QuickTime框架的一部分,所以你可能想要
#import <QuickTime/QuickTime.h>