在2020年下半年,以前用BCB6.0,C++Builder 2010,C++Builder XE7编写的程序,在新版的Windows10中运行出错。进行各种操作,包括打开保存的文件,数据采集显示,系统响应(按钮,菜单操作),几次后软件就锁死了,只能通过任务管理器结束任务。
请高手指点。
在2020年下半年,以前用BCB6.0,C++Builder 2010,C++Builder XE7编写的程序,在新版的Windows10中运行出错。进行各种操作,包括打开保存的文件,数据采集显示,系统响应(按钮,菜单操作),几次后软件就锁死了,只能通过任务管理器结束任务。
请高手指点。
经查,在Windows10的版本号为20H2时,程序的一段代码引起的,屏蔽后解决。
DWORD dwCurrTime = ::GetTickCount();
MSG Msg;
while(1)
{
if( ::PeekMessage(&Msg,NULL,0,0,PM_NOREMOVE ))
{
if( ::GetMessage( &Msg,NULL,0,0 ) )
{
if((Msg.message & 0xFFFF) != WM_MOUSEMOVE)
{
//::TranslateMessage(&Msg);
//::DispatchMessage(&Msg);
}
}
}
if(::GetTickCount() - dwCurrTime > 50)
{
break;
}
}
程序执行这一段代码后,在调用系统的SaveDialog,OpenDialog会造成程序不能响应,只能通过任务管理器结束任务。