m_hWnd的值为什么是 unused

mevacancy 2008-01-31 07:09:12
请问一下
对话框的程序,已经init完毕 然后点一个开始键创建一个线程,这时需要的将窗口的句柄作为参数传进去 我用 m_hWnd,debug调试的时候发现 m_hWnd: unused 值是 CXX0030:expression cannot be expressed 不知是为什么 还请大侠们不吝赐教 谢谢
...全文
1129 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mevacancy 2008-02-01
  • 打赏
  • 举报
回复
我又看了一下 发现我的断言错误和之前的hwnd好像没有很大的关系 我起的这个线程里面用到了 我声明了一个类CCAPSHOW 这个类是来自于CLISTCTRL这个类,
在调用这个类CCAPSHOW的时候 我声明了他的一个对象myshow 并调用CLISTCTRL下的一个函数 这个时候出了断言错误 我觉得问题出在 CLISTCTRL hwnd = 0x00000000;
但是这个问题怎么解决呢请各位高手给予解答 还有一个问题 帖子加分怎么控制加分多少 呵呵
mevacancy 2008-02-01
  • 打赏
  • 举报
回复
onstart 没有放在构造函数里面啊 程序运行 窗口已经生成了 我再点start这个按钮 才会运行onstart
w_anthony 2008-02-01
  • 打赏
  • 举报
回复
你就单看HWND的值是多少就可以了啊,如果是0或者0xcccccccc这类的,说明当时对话框还没有创建,既然你又说是断言错误,那铁定是NULL了,很可能你把OnStart放在了构造函数里面
  • 打赏
  • 举报
回复
你OnStart() 是 什么时候执行的.
有可能CV5monitorDlg对应的窗体没创建

不会是放在CV5monitorDlg的构造函数里了吧
  • 打赏
  • 举报
回复
你OnStart() 是 什么时候执行的.
有可能CV5monitorDlg没创建

不会是放在CV5monitorDlg的构造函数里了吧
mevacancy 2008-02-01
  • 打赏
  • 举报
回复
CXX0030:expression cannot be expressed 那这个怎么解释呢 我创建这个线程后 运行时就会有关于h_Wnd的断言错误
w_anthony 2008-02-01
  • 打赏
  • 举报
回复
typedef HWND__ *HWND;
而HWND__有一个成员叫做unused,这个unused只是成员的名字而已,LZ不要误解了
mevacancy 2008-02-01
  • 打赏
  • 举报
回复
上面两位说的我不太清楚具体的含义 我把我这段代码贴上来请看以下void CV5monitorDlg::OnStart()
{

if (INVALID_SOCKET == pUdpSocket->GetHSock())
{
AfxMessageBox("未创建SOCKET!\n只有创建SOCKET后才能开始监听\n请输入IP地址和端口号并点击设置");
return;
}
HWND hwnd1 = m_hWnd;
RCVPARAM* pRcvPARAM = new RCVPARAM;
pRcvPARAM->sock = pUdpSocket->GetHSock();
pRcvPARAM->hwnd = m_hWnd;
/* LPVOID sock = (LPVOID)pUdpSocket->GetHSock();*/
HANDLE hThread = CreateThread(NULL,0,RcvProc,(LPVOID)pRcvPARAM,0,NULL);

CloseHandle(hThread);
crumpy 2008-02-01
  • 打赏
  • 举报
回复
声明完myshow 要先Create()一下, 这样它的CCAPSHPOW::m_hWnd才有效

另外MFC下创建线程, 要用AfxBeginThread()而不是API CreateThread()
w_anthony 2008-02-01
  • 打赏
  • 举报
回复
CListCtrl myshow,你这个CListCtrl需要先调用Create创建一个列表控件或者关联一个列表控件了才能用,你自己目的都说不清楚,估计也没人能解答了。
菜牛 2008-01-31
  • 打赏
  • 举报
回复
可能超出了作用范围。
crumpy 2008-01-31
  • 打赏
  • 举报
回复
这个和HWND的定义有关, 看看HWND的定义就知道了, 只要传给线程的是一个有效的HWND就可以了

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧