我要发帖 回复

正式会员

4

主题

53

积分

0

专家分

兴趣点(最多三项):

建模技术

私信
发表时间 : 2014-4-13 00:44:09 | 浏览 : 1264    评论 : 11
RT   求帮助 求大神指教

最近VR访客查看更多↓

chinawalltin 评论于2014-4-13 21:17:45
无图无真相
csutest 评论于2014-4-13 21:19:04
调试跑一跑啊,vp2.2可以在win7 64位下运行的,vs2005打上sp1补丁。
chekmatyar 评论于2014-4-14 11:08:38
chinawalltin 发表于 2014-4-13 09:17 PM
无图无真相

运行结果

运行结果的截图

运行结果的截图
chekmatyar 评论于2014-4-14 11:09:06
csutest 发表于 2014-4-13 09:19 PM
调试跑一跑啊,vp2.2可以在win7 64位下运行的,vs2005打上sp1补丁。

运行结果下面有。。。。补丁已打
csutest 评论于2014-4-14 12:44:38
chekmatyar 发表于 2014-4-14 11:09 AM
运行结果下面有。。。。补丁已打

打包工程传上来看看
chekmatyar 评论于2014-4-14 15:25:08
csutest 发表于 2014-4-14 12:44 PM
打包工程传上来看看

就是这个。。。论坛里下的

MFC-VP.rar

87.92 KB, 下载次数: 17

工程

csutest 评论于2014-4-15 19:24:49
本帖最后由 csutest 于 2014-4-15 07:28 PM 编辑
chekmatyar 发表于 2014-4-14 03:25 PM
就是这个。。。论坛里下的


这个主要是SetTimer函数参数各平台下的工作情况问题。在VS2008 msdn中可以查到SetTimer函数,第二个参数为uElapse:
  1. uElapse
  2. [in] Specifies the time-out value, in milliseconds.
  3. Windows NT/2000/XP: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to 1.

  4. Windows 2000/XP: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM.

  5. Windows Server 2003: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM.

  6. Windows XP SP2/Windows Server 2003 SP1: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM.
复制代码
uElapse类型为UINT,也就是无符号整型,vp_mfc示例中,第二个参数传的-1,整型转换为无符号整型后为0xFFFFFFFF,这是个最大的无符号整数!比USER_TIMER_MAXIMUM(0x7FFFFFFF)还大。接下来问题就和系统有关系了,在XP下,timeout 被设为1,1ms刷新一次,可以正常工作,在XP SP2以上版本,timeout被设为USER_TIMER_MAXIMUM,即0x7FFFFFFF,换算成天后,需要将近25天。然而这个例子中,我看了下文件时间是2002年,当然应该是XP系统,写这个程序的也不知道微软会修改这个函数,所以当时在XP下没问题,现在XP2及以上版本却和预期不一致。所以,一片空白是因为楼主程序运行不够久,建议再开个25天,一定会看到town的。^_^
  一般将这个uElapse参数设为1000/60=16(取整),也即在显示器刷新频率为60Hz的情况下,超时值设为16ms就可以了。
(在线的文档:SetTimer ,不过这个文档没有说明在各系统下的工作情况。)
chekmatyar 评论于2014-4-15 20:06:20
csutest 发表于 2014-4-15 07:24 PM
这个主要是SetTimer函数参数各平台下的工作情况问题。在VS2008 msdn中可以查到SetTimer函数,第二个参数 ...

原因看懂了 。。。。具体在哪里修改可以再指教一下么
chekmatyar 评论于2014-4-15 20:10:46
csutest 发表于 2014-4-15 07:24 PM
这个主要是SetTimer函数参数各平台下的工作情况问题。在VS2008 msdn中可以查到SetTimer函数,第二个参数 ...

已经找到了~~~~十分感谢您的帮助
xiaoqiu专家组 评论于2014-4-23 01:17:59
8楼 大神啦!
wunwei1122 评论于2016-1-21 09:52:58
很不错的东东,谢了

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-11-26 01:22 AM

返回顶部