使用Windows Phone 8的C ++中的C#dll
我有一个使用Visual Studio 2012创建的Windows Phone 8应用程序 - Visual C ++下的“Windows Phone Direct3D App(Native only)”项目,以及Visual C#组下的“Windows Phone Class Library”项目创建的库,目标平台为“Windows Phone OS 8.0“。 我需要的只是使用C ++代码中的C#dll。 限制是我无法更改应用程序的体系结构,所以主要入口点必须位于C ++项目中,并从这里调用以C#编写的代码。
如果我尝试在C ++应用程序中引用C#dll,则会出现此错误
无法添加对[dllname]的引用,因为这两个项目针对不同的运行时。
基于http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714080(v=vs.105).aspx,我还尝试通过Visual C ++“Windows Phone Runtime间接引用C#dll组件“,但当我尝试添加对运行时组件的引用时,又遇到同样的错误。 我试图改变一些项目设置,没有任何工作。 在我在网上找到的所有示例和演示中,对于WP8,主要入口点始终在C#中。 只有一些有关Windows应用商店应用的提示似乎表明,可能会从C ++使用C#,但我没有找到任何明确说明我在wp8上的场景可能或不可能的参考。
提前感谢任何共享解决方案或任何建议的人。
迟到的答案,但简短的故事是,你不能。 在Windows 8中,C#WinRT dll是完整的WinRT dll,可以被任何框架(WinJS,Native等)使用,但不适用于手机。
在电话中,C#可以使用C ++ WinRT对象(来自C ++ dll),但反之亦然。 你可以通过让你的C#dll调用你的C ++ dll并传递函数指针来创建技巧,但这就是它。
我喜欢这个:http://www.developer.nokia.com/Community/Wiki/C%2B%2B_support_from_Windows_Phone_8。 您可以在.winmd C ++端元数据中注入一个接口,这可以在C#中引用和实现。 比使用代表更清洁...还必须从C#发起...
链接地址: http://www.djcxy.com/p/67517.html