描述:ASP.NET中如何正确读取由C++中定义的结构写成的二进制文件
说明:现有一用C++中定义的结构写成的二进制文件,结构有两个,类似如下:
struct S1
{
int variable1;
char variable2[20];
}
struct S2
{
int variable1;
char variable[12];
size_t variable3;
....
} 在网上找了不少用C#读二进制文件的,可像这样的实在没找个什么办法,也知道应该用BinaryReader来读,可真不知具体该如何做,试了好多次也不能成功,不知哪位高手能指点一二,谢谢了!
说明:现有一用C++中定义的结构写成的二进制文件,结构有两个,类似如下:
struct S1
{
int variable1;
char variable2[20];
}
struct S2
{
int variable1;
char variable[12];
size_t variable3;
....
} 在网上找了不少用C#读二进制文件的,可像这样的实在没找个什么办法,也知道应该用BinaryReader来读,可真不知具体该如何做,试了好多次也不能成功,不知哪位高手能指点一二,谢谢了!
解决方案 »
- 在WINFORM 里 DATAGridview 如何判断右键点击了标题栏内?
- 经验手 快进
- K代码累了,放松一下,推荐一部书《写手外传》,媲美《武林外传》
- 300元求助 windows media sdk 开发采集卡录像
- 触发事件的疑问。
- Web Service能不能返回typed dataset?
- 请问如何把DATAGRID的内容写回到dataset中?谢谢
- xml读取数据
- 问一下,什么常用设计模式最适合三层架构的程序开发?我知道有23种,不可能都用上。
- 用户分组问题
- 谁发现便宜的WebService短信发送接口了?泄泄。
- 关于数据库视图的问题。。帮帮忙 如何检索出表tb1,tb2,tb3中 所有含有字段 c1,c2,c3 的记录???
struct S1
{
int variable1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=20)]
byte[] variable2;
}
[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Ansi)]
struct S1
{
int variable1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=20)]
byte[] variable2;
}
只是对结构做了基本正确的定义,可问题关键如何正确读取还是没能说明,也许是没看清问题吧,嘿嘿~~读取时我是用BinaryReader、BitConverter做到的,另外在结构定义中还要注意变量应定义为public的,还要定义能将字节数组转化为此结构的构造函数,最好也定个operator可以用(S1)Byte[]将字节数组转化为此结构,这样就可以对引结构的各属性与方法进行访问了 :)
[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Ansi)]
struct S1
{
int variable1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=20)]
byte[] variable2;
}
只是对结构做了基本正确的定义,可问题关键如何正确读取还是没能说明,也许是没看清问题吧,嘿嘿~~读取时我是用BinaryReader、BitConverter做到的,另外在结构定义中还要注意变量应定义为public的,还要定义能将字节数组转化为此结构的构造函数,最好也定个operator可以用(S1)Byte[]将字节数组转化为此结构,这样就可以对引结构的各属性与方法进行访问了 :)
[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Ansi)]
struct S1
{
int variable1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=20)]
byte[] variable2;
}
只是对结构做了基本正确的定义,可问题关键如何正确读取还是没能说明,也许是没看清问题吧,嘿嘿~~读取时我是用BinaryReader、BitConverter做到的,另外在结构定义中还要注意变量应定义为public的,还要定义能将字节数组转化为此结构的构造函数,最好也定个operator可以用(S1)Byte[]将字节数组转化为此结构,这样就可以对引结构的各属性与方法进行访问了 :)