读书人

ShellExecute使用方法,该怎么解决

发布时间: 2013-08-01 15:23:18 作者: rapoo

ShellExecute使用方法
A程序使用ShellExecute打开另一个程序B,并传参的过程中,如果B不关联dll则能正常打开并正常接收参数,如果关联dll则打开正常但无法接收参数。 不知为何?望知道的兄弟解答 谢谢!!
A中代码如下:


void CShexeDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString szPath = QueryExePath()+"aut.exe";
CString szStr=_T("0102001");
ShellExecute(NULL,"open",szPath,szStr,NULL,SW_SHOW);
}

CString CShexeDlg::QueryExePath()
{
TCHAR path[MAX_PATH];
::GetModuleFileName(NULL,path,MAX_PATH);
CString p(path);
CString subp;
int nPos = p.ReverseFind('\\');
return p.Left(nPos+1);
}


在B中InitInstance()函数接收代码:

LPSTRlpsz=GetCommandLine();
theApp.str1=lpsz;


[解决办法]
没看明白
什么叫关联dll?
[解决办法]
dll 这个是做啥用?B.exe 必备吗???
[解决办法]
这个问题跟ShellExecute()函数的使用没有关系吧?
[解决办法]
是否是环境变量问题?
B中是如何加载dll的?是相对路径还是绝对路径?
A通过ShellExecute启动一个进程,当前目录为A所在的目录

读书人网 >VC/MFC

热点推荐