EVC下写文件 vc下读出现错误

410943844   2008-11-22 22:30 楼主
EVC下:
typedef struct
{
         TCHAR id1[200];
     TCHAR id2[200];
         TCHAR id3[200];
         TCHAR id4[200];
         TCHAR id5[200];
         TCHAR id6[200];
         TCHAR id7[200];
         TCHAR id8[200];
         TCHAR id9[200];
         TCHAR id10[200];
}Info;
Info pin;
                wcscpy(pin.id1,_T("dd"));
        wcscpy(pin.id2,_T("dd"));
                wcscpy(pin.id3,_T("dd"));
                wcscpy(pin.id4,_T("dd"));
                wcscpy(pin.id5,_T("dd"));
                wcscpy(pin.id6,_T("dd"));
                wcscpy(pin.id7,_T("dd"));
                wcscpy(pin.id8,_T("dd"));
                wcscpy(pin.id9,_T("dd"));
                wcscpy(pin.id10,_T("dd"));
  CFile  dateFile(_T("\\Storage Card\\table.dll"),CFile::modeCreate|CFile::modeWrite);
                     pin=pInfo.at(i);
          dateFile.Write(&pin,sizeof(Info));

后在vc下读:
  typedef struct
{
         TCHAR id1[200];
     TCHAR id2[200];
         TCHAR id3[200];
         TCHAR id4[200];
         TCHAR id5[200];
         TCHAR id6[200];
         TCHAR id7[200];
         TCHAR id8[200];
         TCHAR id9[200];
         TCHAR id10[200];
}Info;
        ::CFile fread(strFilePath,CFile::modeRead | CFile::shareDenyWrite);
                 CString str;
         
    Info pInfo;
    fread.Read(&pInfo,sizeof(Info));
    str.Format("%s",pInfo.id8);
        AfxMessageBox(str);
    fread.Close();
弹出的结果不对,只有一个d

这个问题出现在哪儿?
 高手帮助

回复评论 (7)

VC下默认不是UNICODE,
EVC下使用的是UNICODE。

你可以设置VC中使用UNICODE,就没有问题了。
点赞  2008-11-23 00:15
这个如何设置为UNICODE ?同时这个程序还要关联其他数据库,设置为UNICODE ,需要改变其他程序吗?
点赞  2008-11-23 08:38
最好在文件操作时,都不使用Unicode。即写文件时,将Unicode转换翃ASNI,再写入文件。

这样EVC和VC在文件操作时,容易一致。

TCHAR 的定义,好像只是一个宏:
在ASNI时,为char
但在Unicode时,为unsigned short
所以LZ上面的两个结构,看似一样的定义,其实是不一样的,所以会出现错误。
点赞  2008-11-23 09:22
斑竹(91program),请根据我的想法,用结构,给我一个简单的例子.
点赞  2008-11-23 11:20
这种情况,你调试一下应该就能找到问题的原因!
点赞  2008-11-23 12:50
引用: 引用 4 楼 djliu221 的回复:
斑竹(91program),请根据我的想法,用结构,给我一个简单的例子.


如LS所说,想尝到东东,还是自己动手吧!

还有,偶不是斑竹
点赞  2008-11-23 13:36
具体如何做,91program 请给我一个简单的例子,让我学习以下,以前没有遇到这样的问题.
点赞  2008-11-23 19:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复