我用atl 做 ActiveX 有窗体的。 在消息处理上有些问题。消息影射部分
BEGIN_MSG_MAP(CYXCardControl)
MESSAGE_HANDLER(ON_COM_RECEIVE, On_Receive )END_MSG_MAP()消息处理函数
LRESULT On_Receive( WPARAM wp, LPARAM lp ) 
{
    return 0;
}可是在编译时,总是出现,下面提示, 编译不过去AtlComm.cpp
d:\远兴\atlcomm\yxcardcontrol.h(78) : error C2660: 'On_Receive' : function does not take 4 parameters
YXCardControl.cpp
d:\远兴\atlcomm\yxcardcontrol.h(78) : error C2660: 'On_Receive' : function does not take 4 parameters
Generating Code...
Error executing cl.exe.AtlComm.dll - 2 error(s), 0 warning(s)555 555 大侠, 这是怎么回事啊。

解决方案 »

  1.   

    好像'On_Receive'函數需要四個參數.
    取決于你是用什麼消息.
    ON_COM_RECEIVE是什麼?
      

  2.   

    HRESULT On_Receive(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
    在处理时将bHandled = TRUE
      

  3.   

    注意返回值为S_OK E_FAIL等,因为看到你return 0所以提醒一下.
      

  4.   

    kvls(冰茶) 说的差不多,因该是这样地:
    LRESULT On_Receive(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);但返回值不用S_OK E_FAIL,因为是LRESULT...