向调用DLL的窗口发送消息问题
最近在写个DLL文件,外部通过调用DLL的一个接口函数抄读数据,内部实现自动抄读解析,解析成功后将发送消息到接受窗口中。
DLL中定义如下:
#define WM_GETMETERPARAM (WM_USER+100)
extern "C" __declspec(dllexport) std::string __stdcall GetSomeDatas(HWND hWnd, const int Port);
std::string __stdcall GetSomeDatas(HWND hWnd, const int Port)
{
m_hWnd = hWnd;
...
}
hWnd为传递发送命令窗体的句柄,得到相关数据后,发送消息:
SendMessage(m_hWnd, WM_GETMETERPARAM, (WPARAM)ID, (LPARAM)Str.c_str());//ID,Str存放目标内容,调试发现返回值为0.
在调用窗体中写上接受消息,
.h中:
#define WM_GETMETERPARAM (WM_USER+100)
class TTest : public TForm
{
...
public:
void __fastcall OnGetMessage( TMessage &Msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_GETMETERPARAM, TMessage, OnGetMessage);
END_MESSAGE_MAP(TfrmBase);
};
.cpp中实现
void __fastcall TTest::OnGetMessage(TMessage &Msg)
{
...//调试发现接受到数据时,没有走到这个函数中来
}
///////////////////////////////////////
请教下各位大侠,怎么样才能再OnGetMessage中得到响应呢?