ボード ゲームをシミュレートする最初の gtk アプリケーションの適切な構造を取得しようとしています。ファイル名である単一のコマンドライン引数があります。gtk アプリケーション内でこのファイルを読み取ります。main() の外で引数にアクセスするにはどうすればよいですか?
これが私の main() ルーチンです。
int main(int argc, char* argv[]) {
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
ExampleWindow window;
return app->run(window);
}
ExampleWindow のコンストラクタは次のとおりです。
ExampleWindow::ExampleWindow() {
Board bd = Board(argv[1]);
...
私が得るエラーは次のとおりです。
In constructor 'ExampleWindow::ExampleWindow()':
error: 'argv' was not declared in this scope
イベントをリッスンするため、私のロジックのほとんどは ExampleWindow にあると思います。Board クラスは、データ構造を保持する ExampleWindow コンストラクターでインスタンス化されます。Board クラスのコンストラクターは、そのコンストラクターへの引数としてファイル名を取り、記述ファイルを読み取り、ファイル入力に基づいてメンバー変数を設定します。
私はこれに何時間も費やしましたが、ドキュメントがまばらで紛らわしいことがわかりました。私は gtk 3.0 を使用しており、私のプログラムは Drawing Thin Lines の例に基づいています。 https://developer.gnome.org/gtkmm-tutorial/3.4/sec-cairo-drawing-lines.html.en
gtkmm の初心者のための助けをいただければ幸いです。