【问题标题】:Get main window hwnd from process ID从进程 ID 获取主窗口 hwnd
【发布时间】:2015-02-27 22:02:59
【问题描述】:

我在这个帖子中读到了一个例子

C++: Best way to get Window Handle of the only window from a process by process id, process handle and title name

但是它给了我一个我不明白的错误。

    1   IntelliSense: argument of type "BOOL (__stdcall CProcess::*)(HWND handle, LPARAM lParam)" is incompatible with parameter of type "WNDENUMPROC"

有人可以帮我解决这个问题吗?

【问题讨论】:

标签: c++ winapi


【解决方案1】:

您不能将非静态成员函数用作 C 语言回调,因为该成员函数有一个隐藏的 this 参数。

在 Windows 中,您可以使用静态成员函数,但请注意,这不是可移植的解决方案。

最便携和最安全的是命名空间范围函数。

【讨论】:

  • 在将函数指针传递给EnumWindows(Windows API 调用)时,可移植性很可能不是设计目标。
  • @IInspectable:你说得对:我所知道的任何 Windows 编译器(现在确实很少,但仍然如此)对此感到模糊。我提到了关于采用什么约定的可移植性。如果可能的话,最好为纯 Windows 程序编写系统可移植代码,因为约定和编码指南等更容易传递,而且其他人可能会发现它更容易理解/更熟悉。
猜你喜欢
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 2012-07-27
  • 2010-11-20
  • 1970-01-01
  • 2011-08-14
相关资源
最近更新 更多