2013-02-28 14 views
3

我試圖創建支持的Windows Phone 8 的程序簡介運行時組件是:錯誤「公共成員的簽名包含原生型」在Windows 8手機RunTimeComponent

  1. 應用( C#)將填充一些數據在ref結構A
  2. 它將調用引用類VVoiP的init API與ref結構A的對象。
  3. Ref類VVoip需要有一個B類對象的數組,它可以有多個實例。

C#代碼:

using TestWRC; 
namespace TestPrj 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
     // Constructor 
     public MainPage() 
     { 
      VVoIP v1 = new VVoIP(); 
      A a1 = new A(); 
      a1.a = 10; 
      v1.init(a1); 
     } 
    } 
} 

C++代碼:

namespace TestWRC 
    { 
    public ref struct A sealed 
     { 
    public: 
     property int a; 
    }; 

    struct B { 
     A^ A_obj; 
    }; 

    public ref class VVoIP sealed 
    { 
    private: 
     B array[3]; /* Array of object to have multiple instance */ 

    public: 
     void init(A a1); 
    }; 
    } 


using namespace TestWRC; 
    void VVoIP::init(A a1) 
    { 
    array[0].A_obj->a = a1.a; /* Filling local array with initialized data*/ 
    } 

從上面的代碼來如下錯誤:

錯誤C3992: '初始化':簽名的公共成員包含無效類型'TestWRC :: A'

我是Windows手機8的新手,有人會說我這是什麼錯誤,以及如何解決這個問題。 在此先感謝。

回答

3

您的公共簽名需要指定這是一個Windows運行時引用計數對象,因此您需要使用帽子(^)語法進行聲明。

void init(A^ a1);