繁体   English   中英

使用Native C ++中的通用Windows C#类库

[英]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中有关于此实践的完整帖子:

在通用Windows平台应用程序中使用现有C ++代码

有趣的是,在我看来,你可以做一件事,但不是相反,但仍然,很高兴知道至少有一种方式实际上是可能的。

我不确定“方便”这个词我会用来描述将本机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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM