ShowWindow(SW_HIDE) Release版出错 为啥呢
ShowWindow(SW_HIDE) Release版报错 为啥呢
桌面广播的程序,接收到服务器端数据就显示如下代码
..........................................
if(!IsWindowVisible())
{
m_bHide=FALSE;
ShowWindow(SW_SHOW);
}
SetTimer(1,5000,NULL);// 5秒收不到数据就自动隐藏
.......................
收不到数据5秒种隐藏界面
void CScreenClientDlg::OnTimer(UINT nIDEvent)
{
if(IsWindowVisible())
{
ShowWindow(SW_HIDE);
}
KillTimer(1);
CDialog::OnTimer(nIDEvent);
}
手动隐藏界面
void CScreenClientDlg::OnMenuitemExit()
{
if(IsWindowVisible())
{
GetForegroundWindow()->ShowWindow(SW_HIDE);
}
}
调试没问题 发布成Release版就报错0x004298e1指令引用“0x0000007e9”内存。改内存不能为“read”。错误指向如下
BOOL CWnd::ShowWindow(int nCmdShow)
{
ASSERT(::IsWindow(m_hWnd));
if (m_pCtrlSite == NULL)
return ::ShowWindow(m_hWnd, nCmdShow);
else
return m_pCtrlSite->ShowWindow(nCmdShow);《--------------------指向这里nCmdShow为0
}
------解决思路----------------------
------解决思路----------------------
m_pCtrlSite 加一个 IsWindow的判断
------解决思路----------------------
窗口句柄是否正确
------解决思路----------------------
::ShowWindow(this->m_hWnd,0);
你的报错原因是窗口句柄无效
------解决思路----------------------
GetForegroundWindow() 是否是空?
CWnd* pForeWnd = GetForegroundWindow();
if(pForeWnd)
{
....
}
------解决思路----------------------
不可能是关闭了,隐藏而已,看进程。
你把程序最小化就知道了
::ShowWindow(this->m_hWnd,SW_MINIMIZE);
桌面广播的程序,接收到服务器端数据就显示如下代码
..........................................
if(!IsWindowVisible())
{
m_bHide=FALSE;
ShowWindow(SW_SHOW);
}
SetTimer(1,5000,NULL);// 5秒收不到数据就自动隐藏
.......................
收不到数据5秒种隐藏界面
void CScreenClientDlg::OnTimer(UINT nIDEvent)
{
if(IsWindowVisible())
{
ShowWindow(SW_HIDE);
}
KillTimer(1);
CDialog::OnTimer(nIDEvent);
}
手动隐藏界面
void CScreenClientDlg::OnMenuitemExit()
{
if(IsWindowVisible())
{
GetForegroundWindow()->ShowWindow(SW_HIDE);
}
}
调试没问题 发布成Release版就报错0x004298e1指令引用“0x0000007e9”内存。改内存不能为“read”。错误指向如下
BOOL CWnd::ShowWindow(int nCmdShow)
{
ASSERT(::IsWindow(m_hWnd));
if (m_pCtrlSite == NULL)
return ::ShowWindow(m_hWnd, nCmdShow);
else
return m_pCtrlSite->ShowWindow(nCmdShow);《--------------------指向这里nCmdShow为0
}
------解决思路----------------------
nCmdShow = 0;就是SW_HIDE
------解决思路----------------------
m_pCtrlSite 加一个 IsWindow的判断
------解决思路----------------------
窗口句柄是否正确
------解决思路----------------------
::ShowWindow(this->m_hWnd,0);
你的报错原因是窗口句柄无效
------解决思路----------------------
GetForegroundWindow() 是否是空?
CWnd* pForeWnd = GetForegroundWindow();
if(pForeWnd)
{
....
}
------解决思路----------------------
不可能是关闭了,隐藏而已,看进程。
你把程序最小化就知道了
::ShowWindow(this->m_hWnd,SW_MINIMIZE);