|
You can pass the null terminated string using lpParameters parameter of ShellExecute function. The destination EXE should process the command line arguments using GetCommandLine and CommandLineToArgvW functions. Please check MSDN for more information.
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
CString is an MFC class. What is the executable that you're trying to run built with? Will it be able to understand a CString?
Last modified: 11mins after originally posted --
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->ßRÅhmmÃ<-·´¯`·.
|
|
|
|
|
Both the applications are mfc dialog based application
in first application i have passed parameter through ShellExecute like this:
CString index_File = "C:\\Documents and Settings\\Mayank\\My Documents\\ppnam\\Debug\\ppnam.exe";
CString pass_val = "neha";
ShellExecute(NULL,"open",index_File,pass_val,NULL,SW_SHOW);
<\pre>
and in second application i have done this
<pre>
LPSTR wtr = GetCommandLine();
AfxMessageBox(wtr);
it gives output as
"C:\\Documents and Settings\\Mayank\\My Documents\\ppnam\\Debug\\ppnam.exe"neha
but i want only passed value....How to get it???
|
|
|
|
|
Instead of GetCommandLine() , try the following:
AfxMessageBox(m_lpCmdLine);
|
|
|
|
|
Its giving this error:
error C2065: 'm_lpCmdLine' : undeclared identifier
|
|
|
|
|
It is a CWinAapp member. You must put that message box in your InitInstance() , where it has meaning. ( ...NOT in InitDialog() )
BOOL CTestestApp::InitInstance()
{
AfxMessageBox(m_lpCmdLine);
}
|
|
|
|
|
i have done this...
but my application is not printing anything.....
|
|
|
|
|
Tried a message box in the InitInstance()? It doesn't display anything? Show me the relevant code, in both executables.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->ßRÅhmmÃ<-·´¯`·.
|
|
|
|
|
Calling exe
void CShellexeDlg::OnButton1()
{
CDialog::OnOK();
CString index_File = "C:\\Documents and Settings\\Mayank\\My Documents\\ppnam\\Debug\\ppnam.exe";
CString pass_val = "neha";
ShellExecute(NULL,"open",index_File,pass_val,NULL,SW_SHOW);
}
<\pre>
Called Exe :
a) On InitInstance
BOOL CPpnamApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
CPpnamDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
AfxMessageBox(m_lpCmdLine);
return FALSE;
}
<\pre>
b) On InitDialog:
BOOL CPpnamDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
LPSTR wtr = GetCommandLine();
return TRUE;
}
<\pre>
|
|
|
|
|
GOT IT....
I was placing message box at wrong position.....
can you tell me if i want to pass more then one parameter then what should i do....
|
|
|
|
|
Passing more than one parameter should be easy. Parsing more than one parameter would involve some work.
But there are already good command line parsing classes available at CP, which you could use in your app. Search CP for Command Line Parser.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->ßRÅhmmÃ<-·´¯`·.
|
|
|
|
|
Calling Executable:
void CShellexeDlg::OnButton1()
{
CString index_File = "C:\\Documents and Settings\\Mayank\\My Documents\\ppnam\\Debug\\ppnam.exe";
CString pass_val = "neha";
ShellExecute(NULL,"open",index_File,pass_val,NULL,SW_SHOW);
CDialog::OnOK();
}
Called Executable:
BOOL CPpnamApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
AfxMessageBox(m_lpCmdLine);
CPpnamDlg dlg;
m_pMainWnd = &dlg;
}
Also, remove calls to GetCommandLine() from your OnInitDialog() and else where.
|
|
|
|
|
Hi,
I like to learn windows socket programming concept with hands on. Can any one suggest where i can get help?
Regards,
Rameshkanth
|
|
|
|
|
See in MSDN for SOCKET Operator.
Thanks and Regards,
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
Try this link socket programming in C.
http://web.cecs.pdx.edu/~jrb/tcpip/sockets/src/
|
|
|
|
|
|
Hi,
I would like to know the difference between Regular DLL using shared MFC DLL, MFC extension DLL, Regular DLL with MFC statically linked. Which one is better in performance and all other important aspects. I would be thankful for ur help.
Thanks & Regards
Sanjay S. Umap
|
|
|
|
|
|
Hello All,
In Socket Programing i am getting an Error No 10053.
It is for Connection closed by Software.
So anybody Tell me what is the problem inside?
Thanks in Advance.
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
What's going on in the code when you get the error?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
At client side connection get close.
But server at server after that it cannot send messages.
Thanks and Regards,
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
10053 referred to as ECONNABORTED or WSAECONNABORTED.
The TCP stack on your computer has decided to terminate the connection because something BAD happened in it's conversation with the host.
The error is kinda mysterious, and doesn't point to a cause. And the cause could either either side of the connection -- you or the host.
See this link for a description of the error: http://www.sockets.com/err_lst1.htm#WSAECONNABORTED[^]
If your server is developed in-house -- go talk to them. It could be their fault -- possibly either software or server configuration or even a routing problem.
If not, go visit their website. You are probably not the first to run into this problem.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|
|
Hello everyone,
I think the value_type of vector<int> should be int and the value_type of vector<int> should be int*. But I am not 100% sure,
1. how to write a program to verify this idea;
2. where to find the definition that the value_type of interator of vector<int> is int*.
It is appreciated if you could help.
<br />
#include <vector><br />
<br />
using namespace std;<br />
<br />
int main (int argc, char** argv)<br />
{<br />
vector<int>::value_type;
vector<int>::iterator::value_type;
<br />
return 0;<br />
}<br />
thanks in advance,
George
|
|
|
|
|
Firstly we can't see the “<” and “>” characters in your post or what’s between them – this information is vital if you expect an answer to your post. Do you review your posts?
I assume you mean the following:
#include <vector>
using namespace std;
int main (int argc, char** argv)
{
vector<int>::value_type;
vector<int>::iterator::value_type;
return 0;
}
The line vector<int>::iterator::value_type is incorrect and might result in compiler errors (depending on the particular STL implementation you’re using.) The correct way to get type information is as follows:
#include <vector>
#include <iterator>
iterator_traits<vector<int>::iterator>::value_type
The reason for using external adaptation via the iterator_traits class is simple: it allows the use of types such as int* to be used as iterators (since int* s are not classes and so can’t expose a value_type directly.) Also note that the crap-fest STL that comes with MSVC6 will fail to compile the code I gave because it’s missing the required iterator_traits specializations.
Also note that you can not assume that an iterator is a pointer: it may or may not be depending on many factors, among them the whims of the implementors (of the STL being used.)
Steve
|
|
|
|
|
Thanks Steve!
I have also referred some links, like this one in sgi implementation,
http://www.sgi.com/tech/stl/iterator_traits.html[^]
Currently, I am using Visual Studio 2005 and using other implementation to illustrate is also fine. Yes, you are correct, I mean vector with greater than and less than signs.
From your reply, I do not understand why from this statement,
iterator_traits<vector<int>::iterator>::value_type
if the type of vector is T or int (i.e. vector <t> or vector <int>), the value_type iterator is also defined to T or int? How it is implemented? For example, from either sgi implementation or Visual Stuido 2005 implementation is fine.
regards,
George
|
|
|
|