正如标题所问,当您导入诸如User32.dll之类的DLL并声明要调用该DLL上的方法时,为什么这些方法需要声明为Static和Extern。
例如,这是从另一个StackOverflow答案中摘录的内容,但展示了我正在询问的内容。
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, UIntPtr dwExtraInfo);
static
:否则你需要以某种方式匹配实例与另一侧。并处理this
参数。extern
因为你正在导入。 - H H