【发布时间】:2015-11-24 01:30:42
【问题描述】:
我有一些看起来像这样的 C# 代码:
[DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, ref Rect rect);
Rect rect = Rect.Zero;
NativeMethods.GetWindowRect(hWnd, ref rect);
但是,当我运行此代码时,rect 变量仍然等于 Rect.Zero(顶部/底部/左侧/右侧都为零),即使 GetWindowRect() 返回成功。这个函数调用序列在 C++ 中实现时工作得很好,但在 C# 中通过 P/Invoke 调用时就不行了。
我确定我正确地调用了GetWindowRect();那不是问题。问题是 GetWindowRect() 总是返回 RECT 的 {0,0,0,0},无论我如何更改函数调用或如何定义 P/Invoke。
【问题讨论】:
-
你能说明
Rect的定义吗? -
您没有检查错误。为什么不呢?
-
你的
Rect类需要是一个结构体。