VS2008 控制台中使用CFileDialog类

来源:互联网 发布:单片机保险丝的作用 编辑:程序博客网 时间:2024/05/22 00:14
上学期一直就疑问在控制台工程里能否使用CFileDialog类,今天中午试验了一中午,终于有了结果,试验平台为VS2008英文版,其他的比如VS2005应该类似。
方法一:按如下步骤进行VS2008 <wbr>控制台中使用CFileDialog类
中间那一步直接点击Next就OK;
VS2008 <wbr>控制台中使用CFileDialog类
接着点击Finish就OK。
点击OK后就进入代码编辑窗口,如下所示(下面是部分代码)。
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL,::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initializationfailed\n"));
nRetCode = 1;
}
else
{
//在此处添加相关的CFileDialog代码即可!下面四行是我添加的
CString FileName; CFileDialogdlg(TRUE,"*.jpg","",OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,"JPGFiles(*.jpg)|*.jpg|BMP Files(*.bmp)|*.bmp|ALLFiles(*.*)|*.*||",NULL); dlg.m_ofn.lpstrTitle="打开比较图像一";
// TODO: code your application's behavior here.
}
return nRetCode;
}
PS:编译时可能会出现如下错误:error C2664:'CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd*,DWORD,BOOL)' : cannot convert parameter 2 from 'const char [6]'to 'LPCTSTR';
解决方法:右键点击工程,选择最后一项Properties,然后如图所示
VS2008 <wbr>控制台中使用CFileDialog类
选择标有红框的那一项。重新编译,OK!
方法二:VS2008 <wbr>控制台中使用CFileDialog类
中间那一步直接点击Next就OK; 
VS2008 <wbr>控制台中使用CFileDialog类
接着点击Finish就OK。 
点击OK后进入代码编辑窗口,如下所示:VS2008 <wbr>控制台中使用CFileDialog类

编写完代码,需要在工程设置中修改两个地方。
右键点击工程,选择最后一项Properties,然后如图所示
VS2008 <wbr>控制台中使用CFileDialog类
注意红框里的两项,务必选择如红框所示的那两项。
PS:如果使用OpenCVS函数库,方法一没问题,但是方法二要注意包含的头文件的顺序,要先包含VS的头文件在包含OpenCV的头文件,
正确方法:
#include "afxdlgs.h"
#include <iostream>
using namespace std;
#include <cv.h>
#include <highgui.h>
错误方法:
#include<cv.h>
#include<highgui.h>
#include "afxdlgs.h"
#include <iostream>
using namespace std;
这样的包含顺序在编译时就会报错!
Over!
0 0