使用opencv将stdafx.h文件包含在C ++程序中的目的是什么?

时间:2010-07-21 12:40:25

标签: c++ opencv

这是一个示例代码。如果我删除了stdafx.h文件,程序就不会编译。

stdafx.h文件

'#pragma once

'#include "targetver.h"

'#include <stdio.h>
'#include <tchar.h>

Capture.ccp

// Capture.cpp:定义控制台应用程序的入口点。 //

'#include "stdafx.h"
'#include "string.h"
'#include "cv.h"
'#include "highgui.h"




int _tmain(int argc, char ** argv[])
{
CvCapture * pCapture = 0;
IplImage * pVideoFrame = 0;
int i;
char filename[50];

//Initialize vieo capture
pCapture = cvCaptureFromCAM( CV_CAP_ANY );
if( !pCapture )
{
    fprintf(stderr, "failed to initialize video capture\n");
    return -1;
}

//Capture three video frames and write them as files
for(i=0;i<20;i++)
{
    pVideoFrame = cvQueryFrame( pCapture );
    if( !pVideoFrame )
    {
        fprintf(stderr, "failed to get a video frame\n");
    }

    //Write the captured video frame as an image file
    sprintf(filename, "VideoFrame%d.jpg", i+1);
    if( !cvSaveImage(filename, pVideoFrame))
    {
        fprintf(stderr, "faile dto write image file %s\n", filename);
    }

    //IMPORTANT : Don't release or modify the image returned 
    //from cvQueryFrame() !
}

//Terminate video capture and free capture resources
cvReleaseCapture( &pCapture );
return 0;
}

stdafx.h文件的用途是什么 - 顺便说一下这个文件是自动生成的。

非常感谢

2 个答案:

答案 0 :(得分:2)

编译器Precompiled Header的一部分是加速构建。

答案 1 :(得分:2)

正如peterchen所说,它用于加速构建并添加一些Windows内容。这包括完全视觉工作室特定,如果您希望您的程序是跨平台的,则不应使用,这是Open Cv库的情况(您可以在windows,linux下使用opencv,.. )。

您的编译错误消息是什么?