首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中直接访问DirectDraw表面内存

在C#中直接访问DirectDraw表面内存
EN

Stack Overflow用户
提问于 2011-02-11 04:25:17
回答 1查看 970关注 0票数 3

我有一个视频采集卡,它通过周期性地用图像数据填充用户指定的缓冲区(给定的内存地址)来工作。这对我在C++中很有效,因为我只需要给它一个Surface.lpSurface指针地址,采集卡驱动程序会在每一帧自动填充新的图像数据,根据这些数据,我可以翻转()并获得新的图像,从而产生一个漂亮的干净的视频提要。

问题是我要移植到C#,并且我需要能够做同样的事情,但是DirectDraw.Surface的托管版本没有用于获取表面内存区域的内存地址的方法/属性。我所需要的就是这个地址,有没有办法通过C#得到它?

EN

回答 1

Stack Overflow用户

发布于 2011-02-16 03:05:23

如果你指的是MDX,我已经有一段时间没有使用它了,所以这可能完全是胡说八道,但是在Surface上应该有一个"Lock“方法来访问字节,但是它可能比你习惯的直接访问底层指针的速度要慢一点……

您可以将您的项目/类标记为“不安全”,然后通过pinvoke访问本地DX例程来获取指针。然后,代码中不安全的部分应该能够直接访问数据。对吗?

如果这条回复是无用的废话,我很抱歉。就像我说的,我已经有一段时间没有玩DirectShow / MDX了。也许这会为你提供一些谷歌素材,或者激发你的一些想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4962244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档