0

C でプログラミングし、Source Insight を使用しています。

多くの定数 (100 など) を持つ列挙型があります。変数値を出力するデバッグ出力がありますが、(もちろん) 整数として出力されます。

私がやりたいのは、列挙定数の名前をクリックして、その数値がどこかに表示されるのを確認することです。(これが Visual Studio プラグインで行われているのを見たことがあるので、可能であるに違いありません。)

つまり、私が持っていると仮定します

enum colors {
    ORANGE, PURPLE, PINK
};

クリック (または選択、または何か)PURPLEして、どこかで値を確認したい1(理想的には、シンボル ウィンドウまたはコンテキスト ウィンドウですが、特にこだわりはありません)。

Source Insight でこれを行う簡単な方法はありますか? 少なくとも(マクロを書くなど)難しい方法はありますか?

4

1 に答える 1

1

これを行うために私が見つけた唯一の方法は、列挙型の各メンバーに特定の値を与えることです。そうすると、列挙型定数が見つかると、コンテキストウィンドウに表示されます。例えば:

enum colors {
    ORANGE = 0,
    PURPLE = 1,
    PINK = 2
};

それは素晴らしいことではありませんが、うまくいきます...

値を含むメッセージボックスをポップアップするマクロを作成することは可能であるように見えますが、3.50.0064では正しく機能させることができません-カーソルの下に間違った列挙型があると思われます。私のテストマクロコードは

macro ShowEnum()
{
  symbolname = GetCurSymbol()
  symbol = GetSymbolLocation(symbolname)

  if (symbol == nil)
    Msg (symbolname # "not found")
  else
    Msg (symbolname # " found")
}

私の場合、これは列挙リストからランダムなアイテムを「見つかった」アイテムとして返します。正しいものが返された場合は、SymbolParent()で親を検索し、SymbolChildren()/ SymListCount()を使用して子を反復処理できます。

于 2010-03-15T11:05:42.577 に答える