WP8:如何在C++中返回一个ItPtR 我用C++和DirectX开发了UnyD3D的WiPoice 8插件。 我现在被卡住了,因为我不知道如何从我的C代码传递一个ItpTR类型到我的C++代码。对于android或iOS插件来说,这实际上要容易得多,因为我们可以将数据作为一个空白*返回。 但是,在Windows Phone运行时组件项目中,这是不可能的。从我读到的内容来看,我必须使用winRT类型。我已经找过了

WP8:如何在C++中返回一个ItPtR 我用C++和DirectX开发了UnyD3D的WiPoice 8插件。 我现在被卡住了,因为我不知道如何从我的C代码传递一个ItpTR类型到我的C++代码。对于android或iOS插件来说,这实际上要容易得多,因为我们可以将数据作为一个空白*返回。 但是,在Windows Phone运行时组件项目中,这是不可能的。从我读到的内容来看,我必须使用winRT类型。我已经找过了,c++,windows-phone-8,windows-runtime,unity3d,native,C++,Windows Phone 8,Windows Runtime,Unity3d,Native,以下是我的代码示例: 在C中: public delegate void WP8EnableTextureDrawing(System.IntPtr texture); private WP8EnableTextureDrawing wp8EnableTextureDrawing; public void SetWP8TextureDrawingFunc(WP8EnableTextureDrawing func){ wp8EnableTextureDrawing = func; }

以下是我的代码示例:

在C中:

public delegate void WP8EnableTextureDrawing(System.IntPtr texture);
private WP8EnableTextureDrawing wp8EnableTextureDrawing;

public void SetWP8TextureDrawingFunc(WP8EnableTextureDrawing func){

    wp8EnableTextureDrawing = func;
}

//...

wp8EnableTextureDrawing(targetTexture.GetNativeTexturePtr());
<>在C++头文件中,我这样匹配委托:

static void enableTextureDrawing(Platform::Object ^texturePtr);
但是编译器抛出此错误-> “WP8TextureDrawing.TextureDrawing.enableTextureDra wingobject”没有重载与委托“NativeTextureDrawer.WP8EnableTextureDrawing”匹配

我希望已经参与此事的人能帮助我


感谢

System.IntPtr in't Platform::Object^。 您应该使用IntPtr中的ToInt64或ToInt32 用于获取内存地址并将其发送到本机代码