首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手基础有关问题大家请进

2012-02-11 
新手基础问题大家请进现在需要把C++的一些代码改成C#,但是根本不懂C++由于项目原因来不及慢慢学习基础了,

新手基础问题大家请进
现在需要把C++的一些代码改成C#,但是根本不懂C++
由于项目原因来不及慢慢学习基础了,只好发帖提问

char chHeaderFlag[24] = {0};
fread(chHeaderFlag,sizeof(char),24,videoFile);
long lObjSize = GetObjectLength(chHeaderFlag+16,8);
代码中chHeaderFlag+16是什么意思,如何计算??

double lTmp = ((unsigned char)chHeaderFlag[i])*(pow(16.0,i*2));
这里面unsigned char是把char类型的chHeaderFlag[i]转换成unsigned char?
是的话转换关系是什么,如果知道如何改成 c#的话更好了

[解决办法]
代码中chHeaderFlag+16是什么意思,如何计算??

chheaderflag是个char数组指针,所以+16表示移动16个char大小的步长,也就是指针地址偏移了16.


转换关系? 没这样的概念。反正是一个字节的东西,内存里就是8位,随便用户怎么解析出来.

char是有符号的,范围是-128-127 ,代码里强转无符号.
[解决办法]
chHeaderFlag+16的意思就是从chHeaderFlag开始往后数16个字节
unsigned char是把char类型的chHeaderFlag[i]转换成unsigned char
转换关系就是别把0x80~0xFF的值当-128~-1理解而是当128~255理解
想转成C#代码的话参考Byte数据类型和二进制文件读写。

[解决办法]
chHeaderFlag+16 表示从chHeaderFlag数组的第16个数据开始读长度为8。
看代码意思应该是读一个视频文件的头,从头信息里获得这个视频长度?

热点排行