主题:  当场昏倒!ROCK,alGetDispSet()函数。

dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#12003/7/17 14:33:17
正在研究ALTOOLS如何分离分辨率参数的问题,没想到
其中alGetDispSet()函数出错,试了N次也不行!昏过去!(见截图)

alGetDispSet()在WIN2003下不能正常使用?还是汉化版的问题?
记得以前我在WIN2000下也是用的这个汉化版,好象是可以正常读取出所有的显示设置的。
看来我是没法再研究如何取出最大刷新率了!
程序内容简单:

图片如下:

运行后出错的提示:

图片如下:

编辑历史:[这消息被dreamexpress编辑过(编辑时间2003-07-17 14:34:55)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#22003/7/17 14:45:22
因为alGetDispSet()返回的超过了文本的1024字节的限制



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#32003/7/17 14:46:42
我估计是这个原因吧。。

但是在2K下我返回的所有分辨率设置都是合适的。

其实比较麻烦。。不知道有没有相关的API函数可以做到



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#42003/7/17 14:47:25
你试试budapi.u32
它也有屏幕刷新频率的设置和获取的



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#52003/7/17 15:28:24
唉,都是我的显卡太高档了!能设置的分辨率范围太大!以至于返回结果太大!再次感觉到奢侈有罪!
一次是内存太多,有罪!这次显卡太好,有罪!
下一次就该论到我硬盘(一共200G)了,硬盘太大,呵呵~~被判~有~~罪!

我可以先通过budapi.u32读一下可用的设置(以后要试试是否可行),再通过ALTOOLS来改,ALTOOLS改的函数是可用的,而且关键是可改刷新率,我记得好象budapi.u32是不能改刷新率的,时间长了忘记是不是budapi.u32了,说错了别见怪。

编辑历史:[这消息被dreamexpress编辑过(编辑时间2003-07-17 15:29:33)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#62003/7/17 15:59:52
budapi.u32可以改。。也可是设置屏幕分辨率。。

应该说altools.u32有的功能budapi.u32基本都包括了。

获取最大刷新率没什么意义吧。。保守一般72就OK了



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#72003/7/17 16:43:45
最大刷新率怎么会没意义?演示作品时,在相同分辨率的情况下,当然是想用最大刷新率来运行AW程序了!

没有闪烁感呀!保守一点就设为60或根本就不去设改变刷新率的参数,ALTOOLS与BUDAPI都会自动以最低的刷新率来设置的。

但我觉得不爽,严重影响效果!



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
#82003/7/17 19:41:59
你不怕烧了用户的显示器?



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#92003/7/17 19:49:43
呵呵,改大了超过用户的显卡最大刷新率的话ALTOOLS修改会不成功,好象等于没改(仍是最低刷新率)或可能失败而出错(AW程序不能正常运行)呀!



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#102003/7/17 19:52:49
我只是想从取得的一长串数据中取得某一分辨率(如1024X1768)下的最高刷新率,然后再设成1024X768X”最大分辨率“呀,这不难办到吧?我只是想问这个问题,结果回答越来越偏离我的初衷了,回来解决我的问题吧!版主大侠



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
#112003/7/18 13:17:23
从系统返回的可用分辩率主要是针对显卡的,一般来说大多数用户没有安装显示器所配的驱动盘(杂牌显示器根本没有),因此系统都认为即插即用显示器,显示器的实际能力系统是不知道的,如果你设置过高,有些差的显示器可是承受不了的,如果真的能有把握确认硬件可以达到所需设置的话,你在windows下改分辩率或刷新率系统为什么会有一个15秒的延时恢复功能呢.Microsoft可不想因此赔用户的显示器哦.



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#122003/7/18 15:53:05
我就是想取得显卡显卡的最大刷新率呀!现在alGetDispSet()函数出错,怎么办?



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
#132003/7/19 1:22:21
显卡支持的最大刷新率并不是显示器能支持的,高刷新率可能损坏的不是显卡,而是显示器哦.所以没有使用过改分辩率的方法来开发产品,特别是要正式出版的产品,不然...呵呵.



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#142003/7/20 10:59:51
我不考虑这个问题,只想使用显卡的最大刷新率,邦邦我吧,改写一下ALTOOLS的取得分辩率的函数吧,它不能在WIN2003+AW65下正常使用!



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
#152003/7/20 16:19:19
手上没有2003不能测试,我写一个xtra你自己测试吧,等一会儿传上来.
我打算将分辩率用list的方式返回,看看有没有长度限制.
altools的问题我怀疑作者初始分配的字符器长度不够,没有想到显卡支持的分辩率有这么多吧.