linzl
驱动牛犊
驱动牛犊
  • 注册日期2003-12-21
  • 最后登录2004-02-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3138回复:11

请问如何读写显存?

楼主#
更多 发布于:2004-01-02 18:48
请问不用DirectX,如何直接读写显存?
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-05 12:33
在瘟都死下,用DDRAW.dll的函数来取显存的物理地址,应是最简单的方法吧。。。。。。
堂堂正正做人,明明白白做事
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2004-01-05 13:54
与DOS下没什么区别,直接读写B8000H,在RING0里无所谓。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2004-01-05 13:54
与DOS下没什么区别,直接读写物理地址B8000H,在RING0里无所谓。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-05 16:44
直接写B8000H,恐怕比较复杂吧(存在一个内存窗口映射的东东)。不同的显示模式,其内存组织是不一样的。所以还是用DDRAW.dll中提供的几个简单的函数来获取当显卡的信息,应是省力的一种方法。
堂堂正正做人,明明白白做事
violin
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2009-08-22
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望83点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-10 19:08
与DOS下没什么区别,直接读写物理地址B8000H,在RING0里无所谓。。。。。。


of course ,it\'s wrong

WinDriver gave us a way, try it.
principal
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2014-02-12
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望62点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-15 00:12
ddk有例子阿
CyberQiQi
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2021-02-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望54点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2004-06-08 17:45
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-11 18:17
ddk有例子阿

是哪个?不妨指出来
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
logincao
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2006-01-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-26 15:46
不知道你在哪个平台.
1,win98,可以直接调用VBE int10可以得到显卡保护模式线性地址.通过简单转换可以直接操作.
2,win2000,写一个wdm,查询显卡pci配置空间,可以得到显存地址,再映射到用户空间,便可以直接操作了.
3,dos 实模式 必须通过切换页面的方式进行(真彩模式,5:5:5,5:6:5,8:8:8).
  dos 保护模式(DPMI Server),可以取到线性地址.

不在沉默中爆发,就在沉默中死亡
tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-26 20:47
直接看显卡的resources就可以找到显存的物理地址,然后找一个读写物理地址的函数.
guojunjie73
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2004-12-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-03 09:55
不用DDraw不能获取直接访问显存的指针。因此不要在这个方向上费时间了。DDraw一个最大的优势就是可以直接获取这个指针。
游客

返回顶部