关于在字节型数组里存放长整形数据的问题。 可以这样: int m_iLength; BYTE m_byteArray[100]; (int *)m_byteArray=m_iLength;这样以后,前4个字节就是数组的长度。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 type def union dw2byte{DWORD dw;byte[4];} DW2B;myFunc(){DW2B dw2b;dw2b=StringSize;string[0]=dw2b.byte[0];string[1]=dw2b.byte[1];string[2]=dw2b.byte[2];string[3]=dw2b.byte[3];} 还是 zhang_qxian(blueman2001)的法子好 谢谢两位的热心,如果是在数组的中间怎么办?比方说在m_byteArray[10]开始存长整形的数据。 可以这样: int m_iLength; BYTE m_byteArray[100]; (int *)m_byteArray=m_iLength; // 存储 m_iLength=(int *)m_byteArray; // 取出// 如果在m_byteArray[10] (int *)(m_byteArray+10)=m_iLength; // 存储 m_iLength=(int *)(m_byteArray+10); // 取出 我说kekepengpeng ,你就不能够举一反三吗?照着seeundersnow的法子做吧! 关键是我这里编译通过不了,主要是前面的那句,我的编译提示我(long*)是一个单操作数的运算符。不过我的数组是用new动态分配的,unsigned char* pMyArray;pMyArray = new unsigned char[CodeSize];(long*)pMyArray = CodeSize;便出现错误! pMyArray = new unsigned char[CodeSize];*(long*)(pMyArray+偏移) = CodeSize;前面加个 *前面几位有点笔误取出long CodeSize = *(long*)(pMyArray+偏移); // sorry,改成这个吧*((long*)pMyArray) = CodeSize; 在IE的context menu 怎样加入自己的菜单项?如图 internet的4个服务类型有什么区别? 一个奇怪的问题 关于ActiveX控件在客户端运行的问题 框架类与视图类的问题 怎么样使MFC开发的EXE程序使用命令行参数? 关于CAsyncSocket的一个问题,急! 内存增长 救命啊,atl做的activex中使用其它activex控件的问题 兔子党是什么样的组织,如何加入??? 用vc做机器的驱动程序,请高手指点我从哪里入手? 如何获得运行中的视?(对不起我没分了,帮个忙好吗?)
type def union dw2byte
{
DWORD dw;
byte[4];
} DW2B;myFunc()
{
DW2B dw2b;
dw2b=StringSize;
string[0]=dw2b.byte[0];
string[1]=dw2b.byte[1];
string[2]=dw2b.byte[2];
string[3]=dw2b.byte[3];}
还是 zhang_qxian(blueman2001)的法子好
int m_iLength;
BYTE m_byteArray[100];
(int *)m_byteArray=m_iLength; // 存储
m_iLength=(int *)m_byteArray; // 取出// 如果在m_byteArray[10]
(int *)(m_byteArray+10)=m_iLength; // 存储
m_iLength=(int *)(m_byteArray+10); // 取出
pMyArray = new unsigned char[CodeSize];
(long*)pMyArray = CodeSize;
便出现错误!
*(long*)(pMyArray+偏移) = CodeSize;
前面加个 *
前面几位有点笔误
取出
long CodeSize = *(long*)(pMyArray+偏移);
// sorry,改成这个吧
*((long*)pMyArray) = CodeSize;