我一直在尝试使用 enumwindows 列出我当前的窗口,并且一直在使用这个代码形式 cplusplus
include <iostream>
include <windows.h>
using namespace std;
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
int Main(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int iCmdShow)
{
EnumWindows(EnumWindowsProc, NULL);
return 0;
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char class_name[80];
char title[80];
GetClassName(hwnd,class_name, sizeof(class_name));
GetWindowText(hwnd,title,sizeof(title));
cout <<"Window title: "<<title<<endl;
cout <<"Class name: "<<class_name<<endl<<endl;
return TRUE;
}
main() 曾经是 winmain,但我想使用控制台应用程序来读取输出,所以我将其切换到 main,构建时出现未解决的外部错误:
错误 LNK2001: 无法解析的外部符号
[code["int stdcall EnumWindowsProc(struct HWND *, long)" (?EnumWindowsProc@@YGHPAUHWND__@@J@Z) 执行链接时出错 [/code]
我在 XP 上使用旧版本的 Visual C++,我已经包含了 kernel32 库和 user32 库,有什么问题吗?
谢谢。