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

mir*_*ham 8 c# c++ windows-runtime

我有带有UI组件的通用Windows C#类库.我想知道我是否可以使用Native C++.

我试图使用regasm将类库dll转换为tlb文件,但它会抛出错误

错误:程序集不能是Windows运行时程序集.

我还尝试为C#类库创建一个WinRT/WRL包装器,并尝试从Native C++加载它.但是当我调用LoadLibrarywrapper dll时,它会返回'nullptr'并返回126错误,即使所有dll和可执行文件都在同一目录中.

那么如何使用Native C++的通用Windows类库呢?可能吗?

Bar*_*r J 2

您必须将类库公开为 COM 组件并从本机代码调用它,这是最方便的解决方案。您将无法从本机 C++ 调用通用 Windows C# 类库,因为它不会被识别,并且正如您在问题中提到的,它将导致异常nullptr

有趣的是,你可以反过来做!

您可以创建一个本机 C++ 库并在通用 Windows C# 平台中调用它 - MSDN 中有关于此实践的整篇文章:

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

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