gpt4 book ai didi

c# - 如何从C++ UWP App引用C#UWP类库

转载 作者:行者123 更新时间:2023-12-02 10:02:31 25 4
gpt4 key购买 nike

尝试从C++ UWP应用程序引用C#UWP类库中的方法时,出现COMException。这是最基本的设置所发生的,所以我一定做错了。

复制:

  • 使用Visual Studio(我正在使用16.5.4),创建一个新的“空白应用程序(通用Windows-c++ / CX)”
  • 将新的“Windows运行时组件(通用Windows)” C#添加到解决方案中,称为“ClassLib”。
  • 将此方法添加到Class1.cs:public static int GetNumber() { return 22; }
  • 修改MainPage构造函数,使其看起来像这样:
  • using namespace ClassLib;
    MainPage::MainPage()
    {
    InitializeComponent();

    auto foo = Class1::GetNumber();
    }
  • 执行应用程序。此异常发生在MainPage构造函数中:
  • Exception thrown at 0x76984402 in UWPApp.exe: 
    Microsoft C++ exception:
    Platform::COMException ^ at memory location 0x0421DD44.
    HRESULT:0x80131040 The text associated with this error code could not be found.

    最佳答案

    此问题是由于从C++ / CX或C++ WinRT项目中调用基于.net的WinRT组件引起的。要使其工作,您可以在c++ / cx项目中添加Microsoft.Net.Native.Compiler nuget软件包并首先安装它。然后右键单击项目->卸载项目->编辑.vcxproj 。之后,在其中添加以下属性。

    <PropertyGroup>
    <UseDotNetNativeToolchain Condition="'$(Configuration)'=='Release'">true</UseDotNetNativeToolchain>
    <DotNetNativeVersion>2.2.3</DotNetNativeVersion>
    </PropertyGroup>

    请注意,,将上述2.2.3版本替换为您安装的Microsoft.Net.Native.Compiler nuget软件包的版本。有关它的更多详细信息,您可以引用此类似的 thread

    关于c# - 如何从C++ UWP App引用C#UWP类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61924194/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com