Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我用 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 位,则会返回一个不相关的窗口句柄。有解决方案或替代方案吗?
对,那行不通。WindowFromPoint() 不需要两个参数,它只需要一个。POINT 类型的结构。你在 32 位代码中侥幸逃脱了它,运气在 64 位模式下用完了,因为它以不同的方式传递参数。
使用 pinvoke.net 网站查找正确的 pinvoke 声明。