【发布时间】:2013-11-24 04:18:47
【问题描述】:
这样编译时:
void DisplayPos (void)
{
SetWindowPos (ConsoleWindow, HWND_TOPMOST, 0, 0, 600, 600, SWP_SHOWWINDOW);
}
int main (void)
{
HWND ConsoleWindow = GetConsoleWindow();
DisplayPos ();
}
GCC 将报告:
Line 3 | error: 'ConsoleWindow' undeclared (first use in this function) // expected
但是在不声明新函数的情况下将 HANDLE 传递给另一个函数是否可行?谢谢。
【问题讨论】:
-
传递句柄很好——但实际上你必须传递它们。函数不能看到彼此的局部变量。
-
@cHao 那么,如何传递 HANDLE(s) ?
-
看到
(void)了吗?这就是参数所在,void表示您不接受任何参数。尝试将其声明为void DisplayPos(HWND ConsoleWindow)。然后,您可以在调用DisplayPos时传递括号中的句柄,例如DisplayPos(ConsoleWindow);。 -
@cHao 哦,谢谢。我懂了。
HWND也是int、char等类型。对吧? -
我建议,在你尝试学习 Windows 编程之前,你先学习 C 编程。试图同时学习两者将是非常困难的。