我正在尝试在Win32 C#WPF应用程序中的一个UWP示例示例中使用Microsoft的SimpleCommunication C ++ DLL。
我试图添加对在Win32 C#WPF应用程序中构建SimpleCommunication .dll时生成的.dll和.winmd文件的引用,但是,每当我尝试从SimpleCommunication调用任何函数时,我都会得到以下信息异常消息:
抛出异常:mscorlib.dll中的'System.TypeLoadException' mscorlib.dll中发生了'System.TypeLoadException'类型的未处理异常 找不到Windows运行时类型'Microsoft.Samples.SimpleCommunication.StspMediaSinkProxy'。
据我所知,这个C ++ dll是作为C ++ / CX构建的(因为它在编译器中使用/ ZW标志),因此它包含非托管代码,所以我假设我需要一些可以从我的托管wpf应用程序调用这些函数的包装程序,但是我不确定如何实现此目标的最佳方法是什么,我们将不胜感激!
答案 0 :(得分:1)
尽管WPF应用程序可以使用系统提供的 WinRT类型(Windows
名称空间中的类型),但是它们不能使用自定义WinRT类型,因为Windows不知道如何定位它们。解决方案是use the Desktop Bridge将WPF应用程序添加到AppX程序包中,此时Windows将能够找到并激活您的类型。
(注意:您不必将应用提交到商店才能使用Desktop Bridge;这只是打包应用的一种机制)。