gpt4 book ai didi

c# - C#直接访问DirectDraw表面内存

转载 作者:行者123 更新时间:2023-11-30 18:06:20 26 4
gpt4 key购买 nike

我有一个视频采集卡,它通过定期用图像数据填充用户指定的缓冲区(给定的内存地址)来工作。这在 C++ 中对我有用,因为我可以只给它一个 Surface.lpSurface 指针地址,捕获卡驱动程序将在每一帧自动用新图像数据填充它,然后我可以 flip() 并获取新图像,从而导致一个漂亮干净的视频提要。

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

最佳答案

如果您指的是 MDX,我已经有一段时间没有玩过它了,所以这可能完全是胡说八道,但是 Surface 上应该有一个“锁定”方法可以访问字节,但它可能比您习惯直接访问底层指针要慢一些...

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

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

关于c# - C#直接访问DirectDraw表面内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com