您的位置:程序门 -> vc/mfc -> 基础类



问个奇怪的问题,望前辈们能解决


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


问个奇怪的问题,望前辈们能解决
发表于:2007-08-07 20:55:16 楼主
我编写的一个小程序,里面弄了个cstring保存一个路径,路径是通过打开对话框选择的,关闭程序后,把路径保存在win.ini中,在打开程序时,路径变量会从win.ini中读取路径.
然后在根据这个路径变量执行其所指的程序,如果是通过打开对话框选择路径,然后执行其所指的程序的话,就没问题.但是如果直接从win.in中读取,不再通过打开对话框选择的话,执行起来就错误.
我通过断点看了   ,路径变量没问题啊   但执行起来就错
发表于:2007-08-07 21:00:071楼 得分:0
代码..
发表于:2007-08-07 21:59:502楼 得分:0
void   cpessavedlg::onbuttonrun()     //执行路径的程序
{
//   todo:   add   your   control   notification   handler   code   here
char   path[100];
sprintf(path,m_regpath);
strcat(path, "xxx.exe ");
int   result=winEXEC(path,1);
if(2==result)
{
messagebox( "文件路径错误,请重新导入! ", "错误 ");
}
}
void   cpessavedlg::onbutton2()   //打开对话框
{
//   todo:   add   your   control   notification   handler   code   here
cfiledialog   fdlg(true);
fdlg.m_ofn.lpstrfilter= "执行程序(*.exe)\0xxx.exe\0\0 ";
fdlg.m_ofn.lpstrtitle= "打开执行程序对话框 ";
if(idok==fdlg.domodal())
{
m_exe1=fdlg.getpathname();
int   count=m_exe1.reversefind( '\\ ')+1;
cstring   pathregtemp=m_exe1;
m_regpath=pathregtemp.mid(0,count);
m_exepath1=m_regpath;
updatedata(false);
//messagebox(m_exepath1);
writeprofilestring( "saveset ", "exe1 ",m_exe1.getbuffer(m_exe1.getlength()));
writeprofilestring( "saveset ", "exepath1 ",m_exepath1.getbuffer(m_exe2.getlength()));
}
}

发表于:2007-08-07 22:41:083楼 得分:0
你字符串赋来赋去也太频繁了吧,看不懂你贴出的程序想干啥

只见你ini中写了个
m_exepath1   没有包含   “文件名.exe”
m_exe1有后缀

但writeprofilestring( "saveset ", "exepath1 ",m_exepath1.getbuffer(m_exe2.getlength()));
中的m_exe2是什么东西,你的最后一个参数为什么不直接用m_exepath1?


发表于:2007-08-07 22:50:264楼 得分:0
可能还是你读ini的path有问题
把这两个路径都trace出来看看?
发表于:2007-08-07 23:37:395楼 得分:0
楼上的各位误解了  

我的程序可以执行   只是出现了我帖子里说的问题  

fmjk525283()   谢谢你的提醒


快速检索

最新资讯
热门点击