这个对话框出现的原因可能是msvcrt.dll在XP这个版本没有vsprintf_s这样的动态库。目前还暂时没有找到好的解决思路,稍后我再单独研究一下,看这个事情该如何解决。
解决办法有很多,我没有一一尝试了。
1、源码阶段,现在发现以前版本的MinGW默认使用的是vsnprintf_s这个函数,所以在XP上会出现这样的情况。解决办法就是使用最新的MinGW编译Qt源码,这样的话,就解除了vsnprintf_s这个函数的依赖了;
2、运行阶段,按照这个方法,将高版本的msvcrt.dll复制粘贴到目标Windows XP机器上,并且在开始->运行中使用regsvr32 msvcrt.dll来注册这个dll。就不会出现问题了;
3、直接去掉此类错误:由于vsprintf_s这个函数定位不了对程序整体影响不大,因此我们可以将这个对话框屏蔽掉;将C:/WINDOWS/system32/dwmapi.dll改名,这样就不会弹出对话框了,缺点是所有此类错误都不会弹出对话框。
最后两个方法参考这里
http://www.qtdream.com/topic/114/%E5%8F%91%E5%B8%83qt-quick%E6%A1%8C%E9%9D%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%96%B9%E6%B3%95/3