6

当我将以下行添加到我的代码中时

[DllImport("user32.dll")]
static extern void keybd_event(byte key, byte scan, int flags, int extraInfo);

并针对Microsoft Basic Correctness Rules运行代码分析,我收到 CA1901 警告。基本上,它抱怨第 4 个参数int extraInfo在 32 位平台上工作正常,但在 64 位平台上需要 64 位整数类型。

当我将代码修改为long extraInfo时,64 位平台要求得到满足,但 32 位平台需要一个 32 位整数。

如何在不抑制警告的情况下解决这个困境?

4

1 回答 1

4

通过使用IntPtr这是一种特定于平台的类型,用于表示指针或句柄:

[DllImport("user32.dll")]
static extern void keybd_event(byte key, byte scan, int flags, IntPtr extraInfo);
于 2011-07-21T23:37:31.480 回答