我正在使用dllImport在C#.NET中使用C库。此库中的一个方法使用数据类型void *作为参数。我发现,我可以在C#中使用与void *相匹配的数据类型IntPtr。
现在我根本不知道如何设置此IntPtr参数的值。实际上我想在这个参数中加上一个浮点值。我该怎么做?
提前感谢任何想法。 西蒙
答案 0 :(得分:3)
如果您可以使用不安全的块,则可以使用:
static IntPtr IntPtrFromFloat( float f )
{
unsafe
{
return (*(IntPtr*)&f);
}
}
它创建一个IntPtr,其地址等于float的二进制表示。
也应该可以将参数声明为float。无论如何它是32位[假定为32位C-DLL]。