32位系统到16位系统中数据结构的转换,请指教。

5512 2004-04-27 04:46:09
我在VC6.0中自定义的数数据结(比如说如下结构),
可以很放便的将这个结构从文件读入链表或将链表存入文件,
但是我建立的的这个文件如果在dos下去读取(我用Turboc2编写)

typedef struct Mypoint
{int x;
char ch;
}MyPoint;
typedef struct Mydata
{int Number;
int day;
char name[50];
MyPoint Data[100];
Mydata *next;
}MyData,*MyDatap;

CFile sFile;
MyDatap p;
.....
我写入的时候时这样的
while(p)
{sFile.Write(p,sizeof(MyData));
p=p->next;

}
读的时候当然是动态分配内存
p=new MyData;
sFile.Read(p,sizeof(MyData));
问题: 在DOS系统中用turboc2中遍程时:
Turboc2中的sizeof(MyData)不等于VC6.0中编程中的sizeof(MyData);
那么读到的数据块大小不相等自然结构访问不能正常进行。
结决方案如何?
请大伙指点。


...全文
58 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
GSK168 2004-05-01
  • 打赏
  • 举报
回复
IQ
5512 2004-04-29
  • 打赏
  • 举报
回复
这样不行呀,VS.net中的int不等于Turboc2中的int
GSK168 2004-04-28
  • 打赏
  • 举报
回复
typedef int INTEGER
or
typedef long INTEGER
然后用INTEGER代你的int
好了吗?
5512 2004-04-27
  • 打赏
  • 举报
回复
我自己先顶 一下 + 一下.
5512 2004-04-27
  • 打赏
  • 举报
回复
我自己先顶一下.
5512 2004-04-27
  • 打赏
  • 举报
回复
是:
typedef struct INTEGER
{int al;
int ah;
}INT;
吗?
那怎么样把INT N转化成int n;
即如何把N的值赋给n呢;

GSK168 2004-04-27
  • 打赏
  • 举报
回复
你可以自已把定义INTEGER型值啊,TYPEDEF不是很好用吗!OK?
5512 2004-04-27
  • 打赏
  • 举报
回复
楼上的方法也是,也只能这样做的了.
但可以讨论一下更具体的代码吗?
望大家能继续发言。
showjancn 2004-04-27
  • 打赏
  • 举报
回复
把32位中的变量折分成两个就是。
分别存放高位和低们。
然后再16位分别处理他们。
xubin_sh 2004-04-27
  • 打赏
  • 举报
回复
int是机器长度,32为相当于long,16位相当于short

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧