В чем разница между использованием DllImport здесь? В частности, означает ли «user32» просто «user32.dll», или это означает «user32.lib» или что-то еще?
[DllImport("user32")]
protected static extern int GetKeyboardState(byte[] pbKeyState);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
protected static extern short GetKeyState(int vKey);
Вероятно, вы можете игнорировать CharSet и CallingConvention.
Если они одинаковы, я могу переписать это, чтобы быть более последовательным, но если нет, я не хочу иметь кучу проблем с этим.