3

我正在使用 dllImport 在 C# .NET 中使用 C 库。该库中的一种方法使用数据类型 void* 作为参数。我发现,我可以在 C# 中使用与 void* 匹配的数据类型 IntPtr。

现在我根本不知道如何设置这个 IntPtr 参数的值。事实上,我想在这个参数中放入一个浮点值。我该怎么做?

提前感谢您的任何想法。西蒙娜

4

1 回答 1

3

如果你可以使用不安全的块,这个可以工作:

static IntPtr IntPtrFromFloat( float f )
{
    unsafe
    {
        return (*(IntPtr*)&f);
    }
}

它创建一个 IntPtr,其中包含一个等于浮点数的二进制表示的地址。

也应该可以将参数声明为浮点数。无论如何它是 32 位 [假定为 32 位 C-DLL]。

于 2009-06-12T09:28:33.457 回答