WindowFromPoint在64位.NET Framework上无法正常运行

时间:2012-10-18 07:56:33

标签: c# .net winforms 64-bit

我用C#和.NET 4.0编写了简易测试程序。

[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(int xPoint, int yPoint);

Point pt = MousePosition;
IntPtr w = WindowFromPoint(pt.X, pt.Y);

如果构建为32位,则可以正常工作。但如果它构建为64位,则会返回不相关的窗口句柄。有解决方案或替代方案吗?

1 个答案:

答案 0 :(得分:8)

是的,那不行。 WindowFromPoint()做取两个参数,它只需要一个。 POINT类型的结构。你完全意外地以32位代码逃脱了它,运气以64位模式运行,因为它以不同的方式传递参数。

使用pinvoke.net网站查找正确的pinvoke声明。