在C#中调用另一个类的方法[关闭]

问题描述 投票:0回答:1

我想在 Visual Studio 2019 中导入 C# .NET Framework Library 中的 user32.dll

为什么

User32.SetProcessDPIAware();
在以下代码中会抛出编译错误:

using System;
using System.Runtime.InteropServices;


namespace MyNamespace
{
    public class User32
    {
        [DllImport("user32.dll")]
        public static extern bool SetProcessDPIAware();
    }

    public class Class1
    {
        User32.SetProcessDPIAware();
    }
}

可能这只是一个愚蠢的新手错误。

但是相同的代码(或多或少)可以在 C# .NET Framework 控制台 App 中运行。

c# dll .net-4.8 user32
1个回答
0
投票

我想我已经明白了:

我们只能调用方法、属性或构造函数内部的方法。要修复此错误,我们需要将调用移至方法、属性或构造函数内的 User32.SetProcessDPIAware(),如下所示:

using System;
using System.Runtime.InteropServices;

namespace MyNamespace
{
    public class User32
    {
        [DllImport("user32.dll")]
        public static extern bool SetProcessDPIAware();
    }

    public class Class1
    {
        public void SetDpiAwareness()
        {
            User32.SetProcessDPIAware();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.