一个有关EnumWindows();函数的问题!
//----------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
// 声明全局的property名和property value
LPCTSTR g_szPropName = "prop name";
HANDLE g_hValue = (HANDLE)1;
// 定义枚举窗口回调函数
BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)
{
HANDLE h = GetProp(hwnd, g_szPropName);
if( h == g_hValue)
{
*(HWND*)lParam = hwnd;
return false;
}
return true;
}
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
HWND hWnd = NULL;
EnumWindows(EnumWndProc, (LPARAM)&hWnd);
if(IsWindow(hWnd))
{
ShowWindow(hWnd, SW_NORMAL);
SetForegroundWindow(hWnd);
return FALSE;
}
Application->CreateForm(__classid(TForm1), &Form1);
SetProp(hWnd, g_szPropName, g_hValue);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
出现下面的错误:
[C++ Error] Project1.cpp(29): E2034 Cannot convert 'int (__stdcall *)(void *,long)' to 'int (__stdcall *)()'
[C++ Error] Project1.cpp(29): E2342 Type mismatch in parameter 'lpEnumFunc' (wanted 'int (__stdcall *)()', got 'int (__stdcall *)(void *,long)')
[C++ Error] Project1.cpp(54): E2451 Undefined symbol 'exception'
怎么解决呀?

