【求救】常规dll中怎么进行消息映射,以及句柄问题
我的大致思路是在vb中调用他的函数,这些功能函数不想用类来封装
比如:
int _stdcall Ser_SetServerType(int iServerType)
{
......
return m_ServerType;
}
使用dll是第二种,常规DLL
系统默认建立一个类class CSerDllApp : public CWinApp
想用自定义的消息映射
#define WM_MYCOMMAND WM_USER+1
BEGIN_MESSAGE_MAP(CSerDllApp, CWinApp)
......
ON_MESSAGE(WM_MYCOMMAND,OnMyCommand) //自定义的消息WM_MYCOMMAND
......
END_MESSAGE_MAP()
这个OnMyCommand是自定义的,我也把他作为全局的了(当然也可以放在CSerDllApp类中吧)
void OnMyCommand(WPARAM wParam, LPARAM lParam)
{ }
在某个函数中调用
ServerSetMessage(WM_MYCOMMAND,NULL);
函数原型:
ServerSetMessage(UINT nMessage,HWND hWnd)
由于这个dll不知道怎么指定句柄,我这里就设为NULL,或者传递VB控件的句柄
但是现在消息映射那地方出错:
error C2440: 'type cast' : cannot convert from 'void (__cdecl *)(unsigned int,long)' to 'long (__thiscall CWnd::*)(unsigned int,long)'
大概是基类不支持吧
问题是:
如何进行消息映射实现我的功能,
还有就是句柄相当于WINDOWS系统的全局变量吧~从VB传递过来的句柄能在VC中对应吧?
所学不多,望解
谢谢!!