日期:2014-05-17  浏览次数:20954 次

结构体传值时神奇的乱码问题,求指点
与dll之间通过结构体来设置设备的参数,使用设备官方程序来写入和读取参数没有任何问题,

我通过调用dll来读取也没有问题,可是通过dll来写入参数后,再读取发现全是乱码。为了查

看是否我写入时编码错误,表现为乱码,我将读取正确参数时的结构体和我用同样参数写入的

结构体都转化为byte[] 然后保存到文件,通过winhex查看,两个文件的编码完全一样。为什

么会出现这种情况呢?

------解决方案--------------------
调试吧,估计还是转换的不对
------解决方案--------------------
估计是你写入和读取时的Encoding不对,你可以指定一致,试试看
------解决方案--------------------
使用IntPtr把 c++ char * 代表的是指针,
IntPtr ptr = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("demo");
注意指向非托管内存,结构体中声明修改下把