gpt4 book ai didi

f# - 在 F# 中将 native 指针与 WriteableBitmap 结合使用

转载 作者:行者123 更新时间:2023-12-02 12:56:47 25 4
gpt4 key购买 nike

你好

我正在尝试使用 this example 中使用的 WritableBitmap.BackBuffer ,请参阅示例部分。
我真正想做的是将 int[] 写入 nativeint 指向的空间。

为了能够从 int [] 写入某些内存,我从 this answer 开始就这样。 Microsoft.FSharp.NativeInterop.NativePtr.write似乎是一个很好用的函数来编写。

在尝试和阅读了一点之后,出现了两个问题。

  1. WritableBitmap.BackBuffer的类型为nativeint,如何转换为NativePter.write想要的nativeptr?

  2. 好像一次只能写一个int,但我想写一整个int[]

我承认我在深水中,但只有在深水中你才能学会游泳:)

提前致谢
戈尔根

最佳答案

我认为 NativePtr.write 函数只能用于一次写入单个值,因此如果您想复制数组,则必须使用 for 循环。

更简单的选择可能是使用 Marshal.Copy 方法 ( see MSDN ),该方法采用源数组(包含各种类型元素的数组有重载)和 intptr 作为目的地。

这样的事情应该有效:

let imageData = [| ... |] // generate one dimensional array with image data
writeableBitmap.Lock()

let buffer = writeableBitmap.BackBuffer
Marshal.Copy(imageData, 0, buffer, imageData.Length)

关于f# - 在 F# 中将 native 指针与 WriteableBitmap 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246844/

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