- ベストアンサー
MFCアプリのコマンドラインでパラメータを使用した起動方法
VisualC++6.0を用いて、ダイアログの2つあるプログラムを 作ったのですが、 2つのダイアログを例えばAさん用、Bさん用として使い分けようと思ったときに メニューでダイアログをそれぞれ指定して、実行しようと思ったのですが、 Aさん用を親ダイアログにしてしまうと、Bさんは起動時ごとにメニューで 切り替えなければいけなくなりますよね。 それで、切り替えをしなくても良いようにと思って、 コマンドラインからパラメータで「/A」「/B」などとしたときに、Aさん用 Bさん用として、起動させたいのですが、 コマンドラインのパラメータをどこで受け取って処理しているのか 分らないのですが、教えては頂けないでしょうか? よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
補足です。 WinAPPクラスInitInstance関数のなかで、 >CCommandLineInfo cmdInfo; >ParseCommandLine(cmdInfo); の記述があればそのあとでパラメータの解析を行います。>>m_lpCmdLineです。 もし、作成中のプロジェクトにこの記述がない (InitInstance関数がない等の)場合は、 CCommandLineInfoクラスの継承クラスをつくって 仮想関数 virtual void CCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) を実装しましょう。 たとえば・・・ CWinApp theApp; using namespace std; // コマンドライン解析クラス class CMyClass : public CCommandLineInfo{ public: virtual void ParseParam(LPCTSTR, BOOL, BOOL); }; //コマンドラインの個々のパラメータを解析および解釈するために、フレームワークが呼び出します void CMyClass::ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ) { CString strTemp = _T(lpszParam); // パラメータ、またはフラグ return; } void main() { CMyClass info; theApp.ParseCommandLine(info); } では^^。