[英]Use Universal Windows C# class library from Native C++
我有带有UI组件的通用Windows C#类库。 我想知道我是否可以使用Native C ++。
我试图使用regasm将类库dll转换为tlb文件,但它会抛出错误
错误:程序集不能是Windows运行时程序集。
我还尝试为C#类库创建一个WinRT / WRL包装器,并尝试从Native C ++加载它。 但是当我为包装器DLL调用LoadLibrary
时,它会返回“nullptr”,错误为126,即使所有dll和可执行文件都在同一目录中。
那么如何使用Native C ++的通用Windows类库呢? 可能吗?
您必须将类库公开为COM组件并从本机代码调用它,这是最方便的解决方案。 您将无法从本机C ++调用Universal Windows C#类库,因为它将无法识别,正如您在问题中提到的,它将导致nullptr
异常。
有趣的是, 你可以做相反的事情!
您可以创建一个本机C ++库并在Universal Windows C#平台中调用它 - 在MSDN中有关于此实践的完整帖子:
有趣的是,在我看来,你可以做一件事,但不是相反,但仍然,很高兴知道至少有一种方式实际上是可能的。
我不确定“方便”这个词我会用来描述将本机C ++暴露为COM组件。
你应该看看C ++ / WinRT
https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis 。
它似乎取代了C ++ / CX,这是微软允许C ++用于构建和使用WinRT组件的初始方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.