要导入GetAsyncKeyState()
我正在使用的 API:
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);
所有网页都给了我相同的代码,但是当我尝试编译编译器时会抛出:
预期的类、委托、枚举、接口或结构
修饰符“extern”对此项无效
我直接用命令行编译,但 Visual C# 也会抛出同样的错误。那么导入函数的正确方法是什么?
要导入GetAsyncKeyState()
我正在使用的 API:
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);
所有网页都给了我相同的代码,但是当我尝试编译编译器时会抛出:
预期的类、委托、枚举、接口或结构
修饰符“extern”对此项无效
我直接用命令行编译,但 Visual C# 也会抛出同样的错误。那么导入函数的正确方法是什么?
这意味着您将声明放在代码的错误位置。它需要在一个类中,如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
// not here
namespace WindowsFormsApplication1
{
// not here
public partial class Form1 : Form
{
// put it INSIDE the class
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);
public Form1()
{
// not inside methods, though
InitializeComponent();
}
}
}
编译器引发的错误很清楚。您应该将该声明放在一个类中:
namespace MyNameSpace
{
public class MyClass
{
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);
}
}
在这里您可以找到extern
关键字的参考