C++ 将stdafx.h文件包含在C++;使用opencv编程
下面是一个示例代码。如果删除stdafx.h文件,程序将无法编译 stdafx.h文件C++ 将stdafx.h文件包含在C++;使用opencv编程,c++,opencv,C++,Opencv,下面是一个示例代码。如果删除stdafx.h文件,程序将无法编译 stdafx.h文件 '#pragma once '#include "targetver.h" '#include <stdio.h> '#include <tchar.h> ”#pragma一次 #包括“targetver.h” "包括 "包括 捕获.ccp //Capture.cpp:定义控制台应用程序的入口点。 // ”#包括“stdafx.h” “#包括“string.h” “#包括“cv
'#pragma once
'#include "targetver.h"
'#include <stdio.h>
'#include <tchar.h>
”#pragma一次
#包括“targetver.h”
"包括
"包括
捕获.ccp
//Capture.cpp:定义控制台应用程序的入口点。
//
”#包括“stdafx.h”
“#包括“string.h”
“#包括“cv.h”
“#包括“highgui.h”
int _tmain(int argc,字符**argv[])
{
CvCapture*pCapture=0;
IplImage*pVideoFrame=0;
int i;
字符文件名[50];
//初始化vieo捕获
pCapture=cvCaptureFromCAM(CV\u CAP\u ANY);
如果(!pCapture)
{
fprintf(stderr,“未能初始化视频捕获\n”);
返回-1;
}
//捕获三个视频帧并将其作为文件写入
对于(i=0;i它是编译器的一部分,用于加速构建。它是编译器的一部分,用于加速构建。正如peterchen所说,它用于加速构建和添加一些Windows内容。这包括完全特定于visual studio的,如果您希望您的程序跨平台,则不应使用它,这就是Op的情况en Cv库(您可以在windows、linux等环境下使用opencv)
您的编译错误消息是什么?正如peterchen所说,它用于加速构建和添加一些Windows内容。这包括完全特定于visual studio的,如果您希望您的程序是跨平台的,即Open Cv库(您可以在Windows、linux等环境下使用opencv),则不应使用它
您的编译错误消息是什么?特定于Visual studio,而不是windows。您可以将gcc与mingw一起使用;-)总之,这是我写给fast的;)我现在就编辑我的答案。嗯?它不会加快在其他平台上的构建速度,但没有理由会破坏任何东西。它只是一个头文件。即使是GCC也支持#pragma once
IIRCIt会因为它不存在而中断,如果导入它,它会引用其他不存在的包含。至少,你应该在它周围设置防护对于一个MSVC/Windows构建。编译超标准的附加组件并不意味着你必须使用它们。C++在设计上是很蹩脚的,但是你必须处理它。——- RUP:不幸的是,在所有情况下都不是。对于预编译头的默认设置,VC5-2008期望<代码>包含“STDAFX.H”。
即使正确的路径是,例如,”。/stdafx.h“
(我不知道VS2010,但我不会赌一磅狗粮来修复它。)另外,stdafx.h之前的所有声明/包含在设置为预编译头时都会被忽略。特定于Visual studio,而不是windows。你可以将gcc与mingw一起使用;-)完全是,我写给fast的;)我现在就编辑我的答案。嗯?它不会加快其他平台上的构建,但没有理由会破坏任何东西。它只是一个heade即使GCC支持<代码>·{语用}一旦<不存在,它就会中断,如果你导入它,它引用其他不存在的内容。至少,你应该有一个守护程序来检查MSVC/Windows构建。编译超标准的非标准附加组件的事实并不意味着你必须使用它。C++是设计上的蹩脚。“,”但你必须处理它。-@Rup:不幸的是,并非所有情况下都是如此。对于预编译头的默认设置,VC5-2008期望#包括“stdafx.h”
,即使正确的路径是”。/stdafx.h“
(我不知道VS2010,但我不会赌一磅狗粮来修复它。)此外,在STDAFX.H被设置为预编译头时,所有声明/包含都被忽略。请不要使用“γ”语用矩,它不是C++,而是编译器依赖的。请使用“包含保护”(“请”)。请不要使用“γ”语法,它不是C++,而是编译器依赖的。使用“包含保护”()。。如果要删除它,则需要修改该.cpp文件(或所有文件)的编译设置删除“使用预编译头”选项-这就是它失败的原因。但没有理由。如果在整个应用程序中广泛使用这些头,您也可以将它们移动到其中,以保存整个应用程序中的重新编译。如果要删除它,您需要修改该.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;
}