圈圈usb cannot convert from 'BOOL (__thiscall CMyUsbHidTestAppDlg::* )(UINT,DWORD)' to 'LRESULT (__

本文解决了在CMyUsbHidTestAppDlg类中实现设备变更通知时遇到的类型转换错误。通过调整函数名及声明方式,确保了消息映射能够正确处理USB设备的插入与拔出事件。

圈圈usb 例子 cannot convert from 'BOOL (__thiscall CMyUsbHidTestAppDlg::* )(UINT,DWORD)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'

解决办法

函数体定义处的函数名称改为:LRESULT CMyUsbHidTestAppDlg::OnDeviceChange(WPARAM nEventType, LPARAM dwData)类定义处的函数声明改为:afx_msg LRESULT OnDeviceChange(WPARAM nEventType, LPARAM dwData );

在21 ic上找到的答案 ,特此记录下来。

// 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); UINT UdpRecvThread(LPVOID pParam); DECLARE_MESSAGE_MAP() public: CMyTcpSocket m_tcpSocket; bool m_bRunning = false; // 线程控制变量 };// UDP接收线程函数 UINT CMFCApplication1Dlg::UdpRecvThread(LPVOID pParam) { SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); sockaddr_in addr = { 0 }; addr.sin_family = AF_INET; addr.sin_port = htons(6000); bind(sock, (sockaddr*)&addr, sizeof(addr)); char buffer[1024]; while (m_bRunning) { // 全局控制变量 int len = recv(sock, buffer, sizeof(buffer), 0); if (len > 0) { PostMessage(WM_UDP_RECV, 0, (LPARAM)new CString(buffer, len)); } } closesocket(sock); return 0; } // TODO: 在此添加额外的初始化代码 m_bRunning = true; AfxBeginThread(&CMFCApplication1Dlg::UdpRecvThread, this);1>------ 已启动生成: 项目: MFCApplication1, 配置: Debug Win32 ------ 1>MFCApplication1Dlg.cpp 1>c:\users\administrator\desktop\mfcapplication1\mfcapplication1\mfcapplication1dlg.cpp(104): error C2665: “AfxBeginThread”: 2 个重载中没有一个可以转换所有参数类型 1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\atlmfc\include\afxwin.h(4928): note: 可能是“CWinThread *AfxBeginThread(CRuntimeClass *,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)” 1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\atlmfc\include\afxwin.h(4925): note: 或 “CWinThread *AfxBeginThread(AFX_THREADPROC,LPVOID,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)” 1>c:\users\administrator\desktop\mfcapplication1\mfcapplication1\mfcapplication1dlg.cpp(104): note: 尝试匹配参数列表“(UINT (__thiscall CMFCApplication1Dlg::* )(LPVOID), CMFCApplication1Dlg *)”时 1>已完成生成项目“MFCApplication1.vcxproj”的操作 - 失败。
最新发布
10-18
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值