2009-08-13 4 views
0

私はC#とC++ CLRの両方でVCCodeModelを使用していますが、CLRプロジェクトにVCCodeModel型を渡すのに問題があります。私は、参照としてMicrosoft.VisualStudio.VCCodemodelを追加したが、私が入力したとき:VCCodeModelはVCCodeModel名前空間にありませんか?

Microsoft::VisualStudio::VCCodeModel::VCCodeModel 

Visual Studioは、コードモデルを参照することはできません。 VCCodeFunctionやVCFileCodeModelのようなネームスペース内の他のオブジェクトはすべて動作しますが、これは失敗します。

VCCodeModel Namespace

これを引き起こす可能性があり、若干の誤差はありますか?私は選択された言語としてC++ CLRで既定のアドインプロジェクトを使用しており、Microsoft.VisualStudio.VCCodeModelを参照として追加し、スペース内の他のメンバーを正常に参照できます。ここに問題は何がありますか?

答えて

2

あなたはIDEのIntellisense for C++でバグ/癖をつけています。クラス名を完全修飾しても、クラス名が名前空間名と同じであれば、Intellisenseには表示されません。 IDEはそれをクラスとして認識しません - クラス名の色は他のクラスのように明るい青色ではなく黒色のままです。

幸いにも、これは純粋に美容的なIDEの問題です。クラスはまだコード内で正常に動作し、コンパイルされます。クラスの名前を自分で入力するだけです。 :-)

さらに、問題はクラスのメンバーにではなく、クラス名にしか及ばない。コードでVCCodeModelへのマネージリファレンスを作成すると、メンバのインテリセンスを見ることができます。ここで

は、プレーン管理されていないクラスでインテリセンスの問題を示すREPROです:

namespace Foo 
{ 
    public class Bar 
    { 
     public: 
      static int x(); 
    }; 
    public class Foo 
    { 
     public: 
      static int x(); 
    }; 
    public class Test 
    { 
     void ThisIsATest() 
     { 
      ::Foo::  // intellisense will show Bar and Test, but not Foo 
      ::Foo::Foo:: // you will see "x" in intellisense 
     } 
    }; 
}; 
+0

フィールは、これは問題が何であったかであることを恥ずかしいが、おかげで、それは単にインテリセンスには現れていませんでした。 – user142350

+0

ええ、時にはIDEが私たちのトリックを演じます! ;-) –

関連する問題