如图
图1红框中是我临时调试的 目的就是想看看intptr转成byte[]后再转回来还是不是同一个值。结果确实不是!
图二就是在网上找的intptr和byte[]转换的方法。试了很多种就是转不回来!
对了,我的Intptr值来源于虹软人脸识别的特征值。并不是由其它转成的!
求大神指导一下。
这是肯定的,因为 IntPtr 是地址,你没办法保证转换回来的数据还在那个地址上。
Marshal.AllocHGlobal是请求了一块新的内存吧,当然会不一样啊。
IsValid函数写错了, Marshal.Copy函数最后一个参数IntPtr.Size在x86是固定的4,在x64是固定的8,所以返回的ys字节数组只有4个或者8个字节,一个人脸识别的特征值不可能只有4个或者8个字节吧?