目前我正在研究WP8.1 RT和WP8.1 Silverlight项目。
[WP8.1 RT]和[WP8.1 Silverlight]都可以从DLL调用本机函数,对吗?
c ++ DLL项目类型是否与[WP8.1 RT]和[WP8.1 Silverlight]有关?
我有点困惑,
VS2013 for WindowsPhone中有5种类型的dll项目
DLL(Windows Phone 8.0) <- WP8.0 SL
DLL(Windows Phone) <- WP8.1 RT
DLL(Windows Phone Silverlight 8.1) <- WP8.1 SL
Windows Runtime Component(Windows Phone 8.0) <- WP8.0 SL Runtime component
Windows Runtime Component(Windows Phone Silverlight 8.1)
感谢Soonts的回答。
答案 0 :(得分:0)
DLL和Windows运行时组件之间的区别在于它们公开的API。
DLL导出可从C ++代码调用的函数,或从WP 8.1中的C#调用(在8.1之前[DllImport]属性被破坏)。
Windows运行时组件不导出函数,而是公开类似COM的对象+类似.NET的类型信息。这些对象可以用于其他C ++ / CX项目,也可以用于.NET(甚至可以用于WP 8.0上的SL)。此外,它们可以使用其他WRT组件(包括您自己的和组件提供的)。
在内部,它们都可以包含经典的C ++代码,调用允许的WinAPI子集,以及调用xap / appx包中的其他非托管DLL。
WP Store和WP SL之间的区别在于它允许使用的API。有一些API仅存在于Silverlight中,但WP SL可以访问WP Store可用的所有API。
简而言之,如果您需要支持WP 8.1,Store和SL - 如果您要编写经典C ++并公开C风格的API或“Windows运行时组件”,请选择“DLL(Windows Phone)” Windows Phone)“如果您要混合经典C ++和C ++ / CX,并公开面向对象的API。