语言重新加载有关问题

语言重新加载问题
	
         int re;
do
{
CINI2DLGDlg dlg;
if (dlg.lang == 1)
{
SetThreadLocale(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED));
}
else if (dlg.lang == 2)
{
SetThreadLocale(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US));
}
re = dlg.DoModal();
}while(re == 0x55);

上面是我为实现多语言是窗体重新加载的代码,在DEBUG时会断言错误,Release时能正常运行。
请问这样写可行吗?可靠吗?


(0x55是用自己返回的,用来判断是退出还是切换语言)
------解决方案--------------------
存在断言失败,肯定有逻辑问题,mfc在debug版本加入一堆的断言,其目的在于帮助发现潜在的逻辑问题,在Release版本,所有断言代码都将被移除,因此Release版本很多潜在错误是无法体现出来