当我在代码中添加以下行时
[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位整数。
如何在不抑制警告的情况下解决这一难题?
答案 0 :(得分:4)
使用IntPtr,它是一种特定于平台的类型,用于表示指针或句柄:
[DllImport("user32.dll")]
static extern void keybd_event(byte key, byte scan, int flags, IntPtr extraInfo);