2009-02-26 16 views
0

これは.NET 2.0フレームワークを対象とするC++/CLI WinFormsプロジェクトです。私はVisual Studio 2008を使用しています。どうやって動作させるのですか?DebuggerDisplay属性が機能しない

はEDIT:コードは「動かない」

[Serializable] 
[DebuggerDisplayAttribute(L"ID={EmployeeID}")] 
public ref class Employee 
{ 
    [ReadOnly(true)] 
    int nID; 
    property int EmployeeID 
    { 
     int get() 
     { 
      return nID; 
     } 
    } 
} 
+0

コードスニペット?何が失敗していますか? – Brian

+0

「employee = 0x058482f8 {age = 46 tracker = 0x0584f1cc nID = 14 ...}」というカスタムテキストは表示されません。 –

+0

Update2 VS2015でサポートされるようになりました。 https://blogs.msdn.microsoft.com/vcblog/2016/02/12/natvis-for-ccli-available-to-preview-in-vs2015-update-2/ – Jordan

答えて

0

コンセンサスは、C++ IDEがサポートしていないことです。

0

定義スニペット...それは確かにC++エディタがサポートしている場合、私は知りません(C#で動作します - ちょうど、以下を翻訳ました)私はC++のいずれかのより多くの "やる" しません

using System.Diagnostics; 
[DebuggerDisplay("HiWorld={Bar}")] 
class Foo 
{ 
    public string Bar { get; set; } 
    static void Main() 
    { 
     Foo foo = new Foo { Bar = "abc" }; 
     // breakpoint and hover shows: HiWorld="abc" 
    } 
} 

を;-pを見つけるためにC#でを動作しますが、リフレクタは言う

[DebuggerDisplay(S"HiWorld={Bar}")] 
private __gc class Foo 
{ 
    // Methods 
    private: static void __gc* Main() 
    { 
     Foo __gc* <>g__initLocal0 = __gc new Foo(); 
     <>g__initLocal0->Bar = S"abc"; 
     Foo __gc* foo = <>g__initLocal0; 
    } 


    // Properties 
    [CompilerGenerated] 
    public: __property String __gc* get_Bar() 
    { 
     return this-><Bar>k__BackingField; 
    } 
    [CompilerGenerated] 
    public: __property void __gc* set_Bar(String __gc* value) 
    { 
     this-><Bar>k__BackingField = value; 
    } 


    // Fields 
    [CompilerGenerated] 
    private: String __gc* <Bar>k__BackingField; 
}; 
+0

私がリフレクターがILを解散したことを覚えている限り、通常のC++/CLIではなくManaged C++と呼ばれるものです。私は正しい? – abatishchev

+0

@abatishchev - 確かに管理されているC++がオプションの1つですが、これが標準C++/CLIではない/どのようにコメントすることはできません。 –

0

あなたの問題は、CLR文字列(S"ID={EmployeeID}")の代わりにワイド文字列(L"ID={EmployeeID}")を指定している可能性があると思います。だから、おそらくLをSに変え、どうやって行くのか見てみましょうか?

関連する問題