33,321
社区成员




class Assist
{
public:
Assist();
BOOL CALLBACK lpEnumFunc2(HWND hwndTurn,LPARAM lParam)
{
String sCptn=(const char*)lParam;
Sleep(1);
};
HWND GetWindowByCptn(const char* s)
{
EnumWindows(&Assist::lpEnumFunc2,(LPARAM)s);
};
};
//typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
EnumWindows”: 不能将参数 1 从“BOOL (__stdcall Assist::* )(HWND,LPARAM)”转换为“WNDENUMPROC”
EnumWindows(std::tr1::bind(&Assist::lpEnumFunc2, this, (LPARAM)s), NULL);
[/quote]
这里可能不这样绑定。
EnumWindows(std::tr1::bind(&Assist::lpEnumFunc2, this, (LPARAM)s), NULL);
EnumWindows(std::tr1::bind(&Assist::lpEnumFunc2, this, (LPARAM)s) NULL);
//public声明
static BOOL CALLBACK EW_Tt(HWND hwndTurn,LPARAM lParam);
HWND WndByTt(const char* sTt);
//类外定义
BOOL CALLBACK EW_Tt(HWND hwndTurn,LPARAM lParam)
{
...
return true;
}
HWND Assist::WndByTt(const char* sTt)
{
m_hwndEnum=NULL;
EnumWindows(EW_Tt,(LPARAM)sTt);
return m_hwndEnum;
}
error LNK2019: 无法解析的外部符号 "public: static int __stdcall Assist::EW_Tt(struct HWND__ *,long)" (?EW_Tt@Assist@@SGHPAUHWND__@@J@Z),该符号在函数 "public: struct HWND__ * __thiscall Assist::WndByTt(char const *)" (?WndByTt@Assist@@QAEPAUHWND__@@PBD@Z) 中被引用
如何改?
还有,HWND是结构体?
#if !defined(RPC_NO_WINDOWS_H)
//
// Notification by window message
//
struct {
HWND hWnd;
UINT Msg;
} HWND;
#endif // RPC_NO_WINDOWS_H
#endif // _KRPCENV_
EnumWindows(std::tr1::bind(&Assist::lpEnumFunc2, this, (LPARAM)s), NULL);
[/quote]
这里可能不这样绑定。[/quote]
嗯。需要先用function。
//类内声明
{
public:
static BOOL CALLBACK EW_Tt(HWND hwndTurn,LPARAM lParam);
HWND WndByTt(const char* sTt);
}
//类外定义
static BOOL CALLBACK EW_Tt(HWND hwndTurn,LPARAM lParam)
{
return true;
}
HWND Assist::WndByTt(const char* sTt)
{
m_hwndEnum=NULL;
EnumWindows(EW_Tt,(LPARAM)sTt);//FindWindow(NULL,sTt)限精确匹配
return m_hwndEnum;
}
报错无法解析的外部符号EW_Tt
语法错误求改正