2017-03-17 4 views
-1

私は矢印キーでメニュー内を上下に移動する関数を呼び出すターミナルベースのメニューを書いています。問題は、私は2つの関数(どちらもstdscr)で見られるようにウィンドウが必要なことです。私は成功していないヘッダーでそれを宣言してextern WINDOWを作成しようとしました。どのように私はこれを達成することができる任意の提案?ありがとうCのncursesウィンドウexternとして

+0

タイポを修正することで、OP解決済みの問題として閉じるように投票してください。 – KevinDTimm

答えて

2

あなたが持っている可能性のあるコードと結果と実行しているものを投げてください。 ncursesベースのドキュメントを読んで、定期的なextern宣言(:未ncursesのユーザーや専門家注):を超えてここに本当の複雑さがあるようには思えない

  • あなたが共有ヘッダーでextern WINDOW *global_win;を必要としています。
  • 一部のソースファイルには、ちょうど1つのWINDOW *global_win = NULL;が必要です。
  • 初期化ルーチンのどこかでglobal_win = newwin();を実行する必要があります。
  • これ以降、適切なオブジェクトファイルがリンクされている場合(ステップ#2を持つもの)、共有ヘッダーを含むファイルからwrefresh(global_win)などを呼び出すことができます。

また、モデルを逆転させ、ライブラリをANYウィンドウで操作できる関数にすることもできます。 draw_circle(WINDOW *win) - あなたの主な方法は、あなたのユーティリティモジュールからのヘッダを含み、グローバル共有ウィンドウ上で動作するモジュールの集合ではなく、現在の作業ウィンドウ(そこに存在する可能性がある)を渡します。この方法では、誰にでもexternを表示する必要はありませんが、WINDOW *を渡す必要があります。

0

今日はあまりにも長い間画面に主演していたに違いない...笑。 WINDOW externを作るコードは簡単すぎる。ちょうどWINDOW * winを追加してください。 (ここで* winはあなたのウィンドウの名前になります)を 'include'の下のヘッダーのどこかに置いて、それをどこかの関数のどこかに定義します。すごくばかげて申し訳ありません...

関連する問題