今天费了好大功夫,实现了内存单一传递数值,其核心是要定义一个数组a[1],只有一个元素,主要取其地址在memcpy()里传输。
第一步:全局定义重构函数,受传递结构体OD的启发,从而额外引入一个a[]数组。
#import "msvcrt.dll" int memcpy(OD &t[],int, int ct); int memcpy(int,OD &t[], int ct); int memcpy(int,int &a[],int); int memcpy(int &a[],int,int); #import
第二步:编写一个两用函数,传递账号这个int型单一数值到某个地址,实际上是读出或写入这个内存块的最后一个int字节。
void 传递账号(int adr)//2018.01.27
{
int a[1];
if(!工作模式)
{
跟踪主账号 = AccountNumber();
a[0] = 跟踪主账号;
memcpy(adr+BUF_SIZE-4,a,4);
}
else
{
memcpy(a, adr+BUF_SIZE-4, 4);
跟踪主账号=a[0];
}
}
第三步:调用这个函数进行读写。比如 “传递账号(pBuf);//2018.01.27”
发表评论