2013-01-08 113 views
0

已更新:回答如下。如何將C#UIViewController傳遞給接收UIViewController的C函數*

我有一個靜態C庫接收UIViewController,然後使用該視圖控制器來呈現它自己的UIViewController,控制並顯示一些用戶界面,然後釋放。我有問題搞清楚如何綁定/編組我的UIViewController從C#到C函數。

我的C#代碼做出這樣的類:

使用系統;使用System.Collections.Specialized;使用System.Runtime.InteropServices;

namespace ImportedUI 
{ 

     [StructLayout(LayoutKind.Sequential)] 

     public class MyUI 
     { 
      [DllImport("__Internal")] 
      protected extern static void MyUIInit(ref MonoTouch.UIKit.UIViewController viewController); 

      public MyUI(MonoTouch.UIKit.UIViewController viewController) 
      { 
       MyUIInit(ref viewController); 
      } 
     } 
} 

我的靜態庫函數定義是:

無效MyUIInit(UIViewController的*的viewController);

上面得到了編組異常。

回答

0

下面的代碼工作:

public class MyUI 
{ 
    [DllImport("__Internal")] 
    protected extern static void MyUIInit(IntPtr viewController); 

    public MyUI(MonoTouch.UIKit.UIViewController viewController) 
    { 
     MyUIInit(viewController.Handle); 
    } 
} 
+0

出於好奇,並加入「裁判」的參數的工作? – JerKimball

相關問題