.NET可移植性警告:CA1901 PInvoke声明应可移植

.NET可移植性警告:CA1901 PInvoke声明应可移植,.net,pinvoke,code-analysis,portable-applications,.net,Pinvoke,Code Analysis,Portable Applications,当我在代码中添加以下行时 [DllImport("user32.dll")] static extern void keybd_event(byte key, byte scan, int flags, int extraInfo); 并根据微软的基本正确性规则进行代码分析,我得到一个CA1901警告。 基本上,它抱怨第四个参数intextraInfo在32位平台上工作正常,但在64位平台上需要64位整数类型 当我将代码修改为longextraInfo时,64位平台要求得到满足,但32位平台要

当我在代码中添加以下行时

[DllImport("user32.dll")]
static extern void keybd_event(byte key, byte scan, int flags, int extraInfo);
并根据微软的基本正确性规则进行代码分析,我得到一个CA1901警告。 基本上,它抱怨第四个参数intextraInfo在32位平台上工作正常,但在64位平台上需要64位整数类型

当我将代码修改为longextraInfo时,64位平台要求得到满足,但32位平台要求32位整数

如何在不抑制警告的情况下解决此难题?

使用一种平台特定类型,用于表示指针或句柄:

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