关于ShellExecute函数

求助 关于ShellExecute函数
本帖最后由 rookyt 于 2013-12-29 14:12:41 编辑
我写了一个简单的mfc程序,想通过一个按钮用指定的程序(netgen)打开指定的文件(.step)


void CDialogDlg::OnBnClickedButton1()
{
CString pathname;//保存路径

CFileDialog dlg (TRUE,NULL,NULL,OFN_OVERWRITEPROMPT, _T("所有文件(*.*;)|*.*||"),NULL);   

if (dlg.DoModal()==IDOK)
{
pathname=dlg.GetPathName();   
}  

ShellExecute(NULL,"open","S:\\NETGEN\\Netgen-4.9.13_x64\\bin\\netgen.exe",NULL,pathname,SW_SHOWNORMAL);
}



但调试时选定了.step文件后每次都有这个窗口闪一下就消失了,然后什么都没发生,文件也没打开关于ShellExecute函数

当我按照平常的方法打开.step文件时却一切正常,请问我该怎么做?(本人刚接触vc++)

------解决方案--------------------
pathname放错位置了
ShellExecute(NULL,"open","S:\\NETGEN\\Netgen-4.9.13_x64\\bin\\netgen.exe",pathname,NULL,SW_SHOWNORMAL); 

另外没选择文件时,不应该继续执行
if (dlg.DoModal()==IDOK)

    pathname=dlg.GetPathName();

else
{
    return;
}

------解决方案--------------------
引用:
改了之后还是不行啊,依然是那样

调试下看看获取到的pathName是什么,是不是想要打开的文件
------解决方案--------------------
引用:
我把netgen.exe换成了WINWORD.EXE就能打开.doc文件了
是不是我的netgen有问题?

用cmd窗口检验下就知道了
------解决方案--------------------
你要把你的这个netgen的路径放到环境变量或者注册表里
根据提示说shell启动的时候找不到