0

更新:在下面回答。

我有一个接收 UIViewController 的静态 C 库,然后它使用该视图控制器来呈现它自己的 UIViewController,控制并显示一些 UI,然后释放。我在弄清楚如何将我的 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);
          }
      }
 }

我的静态库函数定义是:

void MyUIInit(UIViewController *viewController);

上面有一个编组异常。

4

1 回答 1

0

以下代码有效:

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

    public MyUI(MonoTouch.UIKit.UIViewController viewController)
    {
        MyUIInit(viewController.Handle);
    }
}
于 2013-03-20T22:32:38.393 回答