Kasper Kirkeby
May 5th, 1999, 02:23 AM
Hi..
How do i get parameters in a Visual C Dialog based app. (i.e. test.exe /test)
Regards
Kasper Kirkeby
How do i get parameters in a Visual C Dialog based app. (i.e. test.exe /test)
Regards
Kasper Kirkeby
|
Click to See Complete Forum and Search --> : Command line parameters to a Visual C++ Dialog prog. Kasper Kirkeby May 5th, 1999, 02:23 AM Hi.. How do i get parameters in a Visual C Dialog based app. (i.e. test.exe /test) Regards Kasper Kirkeby ilgar May 10th, 1999, 09:43 AM Use GetCommandLine() function and parse it yourself. Thanks, Ilgar Mashayev Timothy Eyring May 10th, 1999, 02:22 PM I was just working on the same thing and stumbled into this approach. One advantage to it is that you don't have to parse the command line youself, MFC does a lot of the annoying grunt work for you. ParseCommandLine goes though the command line sending each piece to CCommandLineInfo::ParseParam. You can add code in your own version of CCommandLineInfo to look for the flags you want. This seems to be fairly well described in the documentation. Example: In InitInstance() ... // start addition CMyComInfo cmdInfo; // CMyComInfo is derrived from CCommandLineInfo ParseCommandLine(cmdInfo); // end addition int nResponse = dlg.DoModal(); if (nResponse == IDOK) ... Simple verion of CMyComInfo // MyComInfo.h: interface for the CMyComInfo class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_MYCOMINFO_H__7C4531D3_02FC_11D3_83E4_00207811095A__INCLUDED_) #define AFX_MYCOMINFO_H__7C4531D3_02FC_11D3_83E4_00207811095A__INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 class CMyComInfo : public CCommandLineInfo { public: virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); CMyComInfo(); virtual ~CMyComInfo(); }; #endif // !defined(AFX_MYCOMINFO_H__7C4531D3_02FC_11D3_83E4_00207811095A__INCLUDED_) and... // MyComInfo.cpp: implementation of the CMyComInfo class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "My.h" #include "MyComInfo.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CMyComInfo::CMyComInfo() { } CMyComInfo::~CMyComInfo() { } void CMyComInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) { CMyApp *pApp=(CMyApp*)AfxGetApp(); if (bFlag) { if (CString(lpszParam)==CString("test")) { pApp->m_bTest=TRUE; // or whatever settings need to be adjusted... } CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast); } Thats it... (Yeah Right) I found that this works, but I haven't used it enough to really know much about it. Read up on CCommandLineInfo and ParseParam, it may be able to do what you want. Good Luck, -Timothy Eyring codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |