最近,我开始从事 Windows 手机的开发工作。
我有一个用 C 语言编写的项目,在我的 windows phone 8 解决方案中。我创建了一个动态链接库(DLL)项目,它可以成功构建。在其中,我使用了一个运行时组件项目来将 DLL 的方法提供给 UI(C#) 项目。在方法中,我有一些指针参数,我使用 Intptr 对象将一个 byte[] 对象传递给运行时组件项目。不幸的是,这导致程序崩溃。
如何将指针参数传递给运行时组件项目或 DLL 项目?或许,还有其他方法可以使用 [Dllimort] 方法导入我的 DLL 文件吗?
任何帮助表示赞赏!
PS:我的解决方案结构:
[动态链接库项目(C++)].dll_method(void *para);
[运行时组件项目(C++)].rc_method(Intptr p)
{ dll_method((void*)p); }
[Windows phone 8 项目(C#)].method()
{ GCHandle g = GCHandle.Alloc(byte[], GCHandleType.Pinned); IntPtr p = g.AddrOfPinnedObject(); rc_method(p); }