怎么设置文件路径? 我用CFileDialog自己选择了文件路径(比如选到桌面了),之后自动打开程序所在目录下的数据库,此时报错;要怎样才能在用CFileDialog选择了路径后,使系统回到程序所在目录? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 记下之前的路径名 ,再调用SetCurrentDirectory函数 得到程序的目录 不就是用GetCurrentDirectory(); 你用了相对路径吧设计程序目录的位置通过GetModuleFileName函数解析出来以下代码仅供参考CString GetAppPath(){ CString strPath; TCHAR cCurrentFilePath[255]; int nTemp; GetModuleFileName(NULL, cCurrentFilePath, 255); strPath = cCurrentFilePath; nTemp = strPath.ReverseFind('\\'); strPath = strPath.Left(nTemp+1); return strPath;} CFileDialog这个控件会修改默认路径的..所以你使用该控件后,GetCurrentDirectory()得到的路径是不相同的.以前被这个问题整得很惨.解决方法:在程序初始化的时候就保存当前路径..以后使用都调那个路径 此函数会把上次打开的路径当成当前路径, 所以最好用GetModuleFileName() 来代替 ! 我试SetCurrentDirectory函数,可以将目录改回去,可是为什么打开数据库时还是出错呢?用CFileDialog改目录前打开数据库没问题,改完后我SetCurrentDirectory将当前目录改回去了,再用GetCurrentPath也能得到当前目录,就是打开数据库不行,这是为什么啊?附:我打开数据库的字符串为CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password= 1234; Data Source= RTUTypeInfo.mdb"); DoModal返回-1貌似是资源加载的问题 求指导,内详,谢了 升星散分 【求助】SDI程序的退出确认对话框 如何使英文版的VS_VERSION_INFO起作用? vc.net 2003对模板支持不如vc.net? CTreeView中为何多次点击鼠标右键才能弹出快捷菜单? 急!!谁用过ODBC的SQLBulkOperations ?? 急!有关内存释放的问题! 为什么OnReceive()不被触发 宽带上网 怎么关掉命令提示符窗口 网络转发的问题?
设计程序目录的位置通过GetModuleFileName函数解析出来
以下代码仅供参考
CString GetAppPath()
{
CString strPath;
TCHAR cCurrentFilePath[255];
int nTemp; GetModuleFileName(NULL, cCurrentFilePath, 255); strPath = cCurrentFilePath;
nTemp = strPath.ReverseFind('\\');
strPath = strPath.Left(nTemp+1); return strPath;
}
此函数会把上次打开的路径当成当前路径, 所以最好用GetModuleFileName() 来代替 !
附:我打开数据库的字符串为
CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB:Database Password= 1234; Data Source= RTUTypeInfo.mdb");