vc2017年所有台风读取本地文件,路径如何设置

下次自动登录
现在的位置:
void Openfile()
// TODO: Add your control notification handler code here
//显示文件打开对话框
CFileDialog dlg(TRUE, &EC&, &*.aes&,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,&Aes Files(*.aes)|*.aes&); 
if ( dlg.DoModal()!=IDOK )
//获取文件的绝对路径
CString sFileName=dlg.GetPathName();
void Savefile()
//显示文件保存对话框
CFileDialog dlg(FALSE, &AES&, &D_Aes&,OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT,&Aes Files(*.aes)|*.aes&); 
if ( dlg.DoModal()!=IDOK )
//获取文件的绝对路径
CString sFileName=dlg.GetPathName();
如果打开对话框时,不是程序的根目录,可以这样``看代码!
//获取当前路径
CString strCurrentPath,strM
GetCurrentDirectory(200,strCurrentPath.GetBuffer(200));
strCurrentPath.ReleaseBuffer();
//strMsg=_T(&当前文件打开路径为:/n&)+strCurrentP//测试用的 可以删掉
//MessageBox(strMsg);//测试用的 可以删掉
//strCurrentPath里面存的就是本程序的根目录,请继续看!
CFileDialog   dlg(TRUE,   TEXT(&TXT&),   NULL,   OFN_HIDEREADONLY   |   OFN_OVERWRITEPROMPT,   TEXT(&文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||&),   this);    dlg.m_ofn.lpstrInitialDir=strCurrentP //这里就设置了对话框的默认目录为strCurrentPath
if ( dlg.DoModal()!=IDOK )
//获取文件的绝对路径
CString sFileName=dlg.GetPathName();
【上篇】【下篇】
您可能还会对这些文章感兴趣!
百度站内搜索
同分类最新文章VC/MFC&设置程序与文件关联与双击文件获取文件路径
如何设置程序与文件关联并且双击关联文件时获取文件的路径呢?
一般来说可以通过写注册表的方式实现,在函数入口处实现功能。
例如在VC/MFC中,可以在应用程序的C**App.cpp文件中InitInstance()函数中实现该功能。
#include &string&
//关联文件的后缀名,如"txt"、"doc"等
string&&m_csE
string&&m_csShellOpenC
string&&m_csDocumentShellOpenComma
//注册表中文件夹类名
string&&m_csDocumentClassN
//关联文件的默认图标
string&&m_csDocumentDefaultI
///////赋值函数//////
void SetExtension( LPCTSTR szExtension )
&& m_csExtension =
void SetShellOpenCommand( LPCTSTR szShellOpenCommand )
&& m_csShellOpenCommand =
szShellOpenC
void SetDocumentShellOpenCommand( LPCTSTR
szDocumentShellOpenCommand )
&& m_csDocumentShellOpenCommand =
szDocumentShellOpenComma
void SetDocumentClassName( LPCTSTR szDocumentClassName )
&& m_csDocumentClassName =
szDocumentClassN
void SetDocumentDefaultIcon( LPCTSTR szDocumentDefaultIcon )
&& m_csDocumentDefaultIcon =
szDocumentDefaultI
///////赋值函数//////
//////关键函数:实现写注册表的函数////////
SetRegistryValue(&HKEY&hOpenKey,
&LPCTSTR szKey,
&LPCTSTR szValue,
&LPCTSTR szData
&// validate input
&if( !hOpenKey || !szKey || !szKey[0] ||
&&!szValue || !szData ){
&&::SetLastError(E_INVALIDARG);
&&return FALSE;
&BOOL &bRetVal = FALSE;
&DWORD&dwD
&DWORD&dwReserved = 0;
&HKEY& &hTempKey
= (HKEY)0;
&// length specifier is in bytes, and some
&// are more than 1 byte each
&DWORD&dwBufferLength =
lstrlen(szData) * sizeof(TCHAR);
&// Open key of interest
&// Assume all access is okay and that all keys
will be stored to file
&// Utilize the default security attributes
&if( ERROR_SUCCESS == ::RegCreateKeyEx(hOpenKey,
szKey, dwReserved,
&&(LPTSTR)0,
REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, 0,
&&&hTempKey,
&dwDisposition) ){
&&// dwBufferLength must include
size of terminating nul
&&// character when using REG_SZ
with RegSetValueEx function
&&dwBufferLength +=
sizeof(TCHAR);
&&if( ERROR_SUCCESS ==
::RegSetValueEx(hTempKey, (LPTSTR)szValue,
&&&dwReserved,
REG_SZ, (LPBYTE)szData, dwBufferLength) ){
&&&bRetVal =
&// close opened key
&if( hTempKey ){
&&::RegCloseKey(hTempKey);
&return bRetV
BOOL RegSetExtension(void)
&if( m_csExtension.empty() )
&& return FALSE;
&std::string csKey = "." + m_csE
&SetRegistryValue(HKEY_CLASSES_ROOT,
csKey.c_str(), "", m_csDocumentClassName.c_str());
&if( !m_csShellOpenCommand.empty() )
&&csKey += "";
&&SetRegistryValue(HKEY_CLASSES_ROOT,
csKey.c_str(), "", m_csShellOpenCommand.c_str());
&return TRUE;
BOOL RegSetDocumentType(void)
&if( m_csDocumentClassName.empty())
&&return FALSE;
&std::string csKey = m_csDocumentClassN
&SetRegistryValue(HKEY_CLASSES_ROOT,
csKey.c_str(), "", m_csDocumentDescription.c_str());
&// DefaultIcon
&if( !m_csDocumentDefaultIcon.empty() )
&&csKey& =
m_csDocumentClassN
&&csKey += "";
&&SetRegistryValue(HKEY_CLASSES_ROOT,
csKey.c_str(), "", m_csDocumentDefaultIcon.c_str());
&// shell\open\command
&if( !m_csShellOpenCommand.empty() )
&&csKey& =
m_csDocumentClassN
&&csKey += "";
&&SetRegistryValue(HKEY_CLASSES_ROOT,
csKey.c_str(), "", m_csShellOpenCommand.c_str());
& return TRUE;
RegSetAllInfo(void){
&& RegSetExtension();
&& RegSetDocumentType();
&& return TRUE;
//注册程序与文件后缀名的关联
void RegisterFileAndProgram()
&////一个应用程序与多个文件后缀关联////
strExternsionLength&4
&LPCTSTR strExtension[] =
&CGCFileTypeAccess TheFTA;
&TCHAR&&&&
szProgPath[MAX_PATH * 2];
&//获取程序路径
&::GetModuleFileName(NULL, szProgPath,
sizeof(szProgPath)/sizeof(TCHAR));
&CString csTempT
&for(int i
= 0; i & strExternsionL ++i)
&//设置程序需要关联的后缀名,如"txt" "doc" 等
&SetExtension(strExtension[i]);
&csTempText.Format(""%s"
%s",szProgPath,""%1"");
&SetShellOpenCommand(csTempText);
&SetDocumentShellOpenCommand(csTempText);
//设置注册表中文件类的别名,例如可以是程序名称:**.exe
&SetDocumentClassName("**");
&// use first icon in program
&csTempText& = szProgP
&csTempText += ",0";
&SetDocumentDefaultIcon(csTempText);
&RegSetAllInfo();
//入口函数:初始化所需的操作
BOOL C**App::InitInstance()
&&&&//////////
//***Code***
&&&&//注册程序与文件后缀名的关联
RegisterFileAndProgram();
分析标准外壳命令、DDE、打开文件操作的命令行
CCommandLineInfo cmdI
ParseCommandLine(cmdInfo);
&&& //获取命令行传过来的参数:双击打开的文件的文件路径名称&&&&CString
strFilePathName = cmdInfo.m_strFileN
& & // 调度在命令行中指定的命令。如果
/RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回
(!ProcessShellCommand(cmdInfo))
return FALSE;
&&&//////////
&&&//通过获取的strFilePathName文件名称实现相关操作//
&& //Add code here//
&&&////////
&&& return
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。解决VS2017不能打开stdio.h等文件的问题
投稿:jingxian
字体:[ ] 类型:转载 时间:
下面小编就为大家带来一篇解决VS2017不能打开stdio.h等文件的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
从另一台机器上复制过来的项目,由于两台机器的库目录不一致,导致了stdio.h等很多文件都打不开:
解决的办法是从新设置包含目录。选择项目--&%项目名称%属性--&VC++目录,设置包含目录为C:\Program Files %28x86%29\Windows Kits\10\Include\10.0.15063.0\ucrt:
然后就可以找到这些文件了。
以上这篇解决VS2017不能打开stdio.h等文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2013年2月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。VC中获取文件的相对路径与绝对路径
我的图书馆
VC中获取文件的相对路径与绝对路径
Ⅰ、获取相对路径
如果当前打开的文件中要寻找同级的目录文件就要用到 .\\或者 ./
VC编译器都可以识别。例如#define ".\XX\XX\xx.h"
如果当前打开的文件中要寻找在上级的目录文件就要用到& ..\ 或者 ../
VC编译器都可以识别。例如#define "..\XX\XX\xx.h"
通过这样简单的标识,vc相对路径的问题就解决了,这样也就避免了设置繁琐的系统路径。当然了,设置相对路径要在编码的时候对文件的存放层次关系特别清楚,否则统一修改路径将会带来很大的工作量。
Ⅱ、绝对路径
方法1:CString
strPGetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));strPath.ReleaseBuffer();
filename=strPath+"\\"+dlg.GetFileName();
使用GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径
CString&strP&&
GetModuleFileName(NULL,strPath,MAX_PATH);&&
strPath.ReleaseBuffer();&&
filename=strPath+"\\文件名.*";&&&&&&&&&&&&&&&&&CString strP
GetModuleFileName(NULL,strPath,MAX_PATH);
strPath.ReleaseBuffer();
filename=strPath+"\\文件名.*";&&&&&&&&&&&&
在开发工程中,往往需要知道当前程序本身所在目录。一种方法是在程序安装的时候利用安装程序把文件路径写入注册表。在较大的程序中,这种方法比较常用;另一种,就是在程序得到路径。这样,程序随便移动到哪里,都可以得到正确的路径。这也是本文介绍的方法。
&.\\是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的;GetModuleFileName()得到模块的完整路径名,例如,你载入c:\windows\system32\a.dll,得到模块句柄h,则你可以用GetModuleFileName()得到h模块的完整路径名。
TA的最新馆藏
喜欢该文的人也喜欢

我要回帖

更多关于 2017年所有台风 的文章

 

随机推荐