2

簡単なテストプログラムをC#と.NET4.0で作成しました。

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

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

これが32ビットとして構築されている場合は、機能します。ただし、64ビットとしてビルドする場合は、無関係のウィンドウハンドルが返されます。解決策や代替案はありますか?

4

1 に答える 1

10

そうです、それはうまくいきません。WindowFromPoint()は2つの引数を取りませ。1つだけ取ります。タイプPOINTの構造。まったくの偶然によって32ビットコードでそれを回避しました。引数を別の方法で渡すため、64ビットモードでは運が尽きました。

pinvoke.net Webサイトを使用して、正しいpinvoke宣言を見つけてください。

于 2012-10-18T08:45:30.383 に答える