在DIRECTX中 怎样获得 PRIMARYSURFACE(独占模式)。 1000分!!!!!

one_add_one 2002-07-28 04:18:37
rt
...全文
254 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
kidding 2002-09-15
  • 打赏
  • 举报
回复
不要再进行不可能的工作了!
one_add_one 2002-09-10
  • 打赏
  • 举报
回复
听得一头雾水
Analyst 2002-09-05
  • 打赏
  • 举报
回复
因为ddraw是个COM对象,调用CreateSurface是通过vtable的,所以要hook的话应该不是很难,不过我没做过,这里提个方案你自己去试试看吧。
首先在游戏进程创建的时候把你的DLL注入到该进程中去,创建个ddraw对象,得到ddraw对象的vtable,把CreateSurface的入口地址改成你的函数就OK了。另外可能你得到的PrimarySurface和游戏的PrimarySurface不在同一个线程里,所以你要注意线程同步的问题,可能需要手工处理列集。
one_add_one 2002-09-04
  • 打赏
  • 举报
回复
to Analyst()
能说说:Hook CreateSurface的用法吗?
Analyst 2002-09-03
  • 打赏
  • 举报
回复
试试用
ddraw->SetCooperativeLevel(hwnd, DDSCL_NORMAL);
因该就能在独占模式的游戏里创建出primarySurface了。
不过如果你要在别的游戏中截屏的话,最好是Hook CreateSurface这个函数,这样PrimarySurface就能很容易的得到了。
monkey79 2002-09-02
  • 打赏
  • 举报
回复
俺不懂!
帮你UP!!!
one_add_one 2002-09-01
  • 打赏
  • 举报
回复
up
one_add_one 2002-08-29
  • 打赏
  • 举报
回复
up
jink 2002-08-27
  • 打赏
  • 举报
回复
楼主这贴分发不光就给点我,我也是混分的
kidding 2002-08-27
  • 打赏
  • 举报
回复
看来要截图还只能用DC(不过应该是游戏窗口的DC)
kidding 2002-08-27
  • 打赏
  • 举报
回复
你是想获得另外一个DirectX程序的主表面。
目前,据我所知,还没有解决方法。IDirectDraw接口中并没有
GetPrimarySurface之类的函数
phonix497 2002-08-27
  • 打赏
  • 举报
回复
哦,我是混分的
IO_X 2002-08-27
  • 打赏
  • 举报
回复
用GetDesktopWindow
再GetDC也可以截取DirectX的屏幕
我试过
one_add_one 2002-08-27
  • 打赏
  • 举报
回复
up
one_add_one 2002-08-25
  • 打赏
  • 举报
回复
我要做的是“获取别的程序的独占模式下的主表面”

就像HyperSnap一样能截DirectX的屏.

我只想截屏幕的一小部分,如果不获得主表面,就不知道怎么做了,所以我想获得主表面.
Sn_Yugo 2002-08-22
  • 打赏
  • 举报
回复
说实话到最后我都不明白楼主是要做什么?
创建一个DDRAW独占模式的程序?
还是获取别的程序的独占模式下的主表面?
starshx 2002-08-22
  • 打赏
  • 举报
回复
其实在这里还是要强调一下,所谓独占模式是就应用程序之间对于操作系统的关系来定义的,所以不要想成一个有独占模式的平面。

windows里的消息纷繁复杂,跳来跳去,游戏大多以效率优先,DirectX自然提供函数支持游戏程序对系统资源(CPU,系统内存,显存)的独占。
lpdd4->SetCooperativeLevel(main_window_handle,DDSCL_FULLSCREEN|DDSCL_EXCLUSIVE)
这句就是了:)
事实上上面的程序已经完成了所有除了创建主表面的工作,而且我从楼主的问题里感觉到难点是在独占,而非主表面之创建。代码已经到了这样的地步,主表面的创建只是九牛一毛了。

这是别人的程序是别人的,还是有很多的问题。:)不过,就是能解决楼主的问题。
starshx 2002-08-22
  • 打赏
  • 举报
回复
one_add_one()快给分给分_L2002:)
你的信箱呢?我发给你。

还有finalvictory(维克) ,等你对DirectX有点了解了在来质问。什么叫做“几个DDraw程序一块工作岂不是要天下大乱”,你觉得DirectX程序的初始化只有一套?……………………

大家都是五六颗星的人了,我也不多说了。
Sn_Yugo 2002-08-21
  • 打赏
  • 举报
回复
建议你换一种变通的做法,比如截屏……

不过到底能不能获得独占模式下的主表面偶也期待中……

UP一下。
one_add_one 2002-08-21
  • 打赏
  • 举报
回复
大哥们,我要primary surface 我拿1000分来换。。。
加载更多回复(32)

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧