Those aren't pointers.
So when you call the external routine, and it thinks they are, it tries to access memory that doesn't exist, or isn't yours, or...
And so it throws an exception.
Why don't you just use the BitConverter class?
Dim f As Single = 333.7F
Dim bytes As Byte() = BitConverter.GetBytes(f)