我需要实现一个包装程序,以将一些本机C代码公开给C#,并且已经按照本教程进行操作:http://www.silverlightshow.net/items/Windows-Phone-8-Native-Code-Support.aspx到目前为止,在我的C#测试项目中,只要我引用了整...
我需要实现一个包装程序,以将一些本机C代码公开给C#,并且已经按照本教程进行操作:
http://www.silverlightshow.net/items/Windows-Phone-8-Native-Code-Support.aspx
到目前为止,在我的C#测试项目中,只要我引用了整个项目(.sln),从运行时组件项目实例化用C/C++X编写的类并使用该类中的方法就不会有问题.
Visual Studio不允许我单独引用运行时组件DLL,但允许我引用项目中的.winmd文件.然后,C#可以正确识别名称空间,但是在运行时,尝试创建同一对象时出现TypeLoadException.
这似乎不是名称空间问题(如此处所述:Changing namespace name of C++ component in Windows Phone causes exception),因为只要我创建项目引用(或者引用项目与.winmd的引用是否会以某种方式影响名称空间?),一切都就可以了.
是否可以以某种形式捆绑运行时组件,使最终用户可以在不需要提供整个项目的情况下引用该组件?
解决方法:
您需要在WMAppManifest.xml中添加以下内容
<ActivatableClasses>
<InProcessServer>
<Path>YourComponent.dll</Path>
<ActivatableClass ThreadingModel="both" ActivatableClassId="YourComponentNamespace.YourComponent"/>
</InProcessServer>
</ActivatableClasses>
用YourComponent作为WinMD的名称.
本文标题为:c#-从另一个项目引用Windows Phone运行时组件DLL / WinMD
基础教程推荐
- ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试 2023-09-26
- C#实现常见时间格式 2023-05-31
- C#异步编程由浅入深(三)之详解Awaiter 2023-05-25
- C++中#include头文件的示例详解 2023-02-08
- unity学习教程之定制脚本模板示例代码 2023-01-11
- c# – 两个类似的LINQ查询,完全不同的生成SQL 2023-11-26
- C#中使用jieba.NET、WordCloudSharp制作词云图的步骤 2023-04-27
- Unity实现移动端手势解锁功能 2023-03-04
- C# FileStream复制大文件 2023-01-22
- c# – Windows phone 7从应用程序访问Dropbox 2023-09-18