VS2008 控制台中使用CFileDialog类

上学期一直就疑问在控制台工程里能否使用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 initialization failed\n"));
nRetCode = 1;
}
else
{
//在此处添加相关的CFileDialog代码即可!下面四行是我添加的
CString FileName; CFileDialog dlg(TRUE,"*.jpg","",OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,"JPG Files(*.jpg)|*.jpg|BMP Files(*.bmp)|*.bmp|ALL Files(*.*)|*.*||",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!

你可能感兴趣的:(VS2008 控制台中使用CFileDialog类)