我想在 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 中运行。
我想我已经明白了:
我们只能调用方法、属性或构造函数内部的方法。要修复此错误,我们需要将调用移至方法、属性或构造函数内的 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();
}
}
}