正在阅读:VC++学习:字符串黑箱的背后VC++学习:字符串黑箱的背后

2004-03-01 10:18 出处:CSDN 作者:titilima 责任编辑:linjixiong

  在知道了硬伤所在之后,我决定以空间换时间——借用一个变量指向目标字符串的末尾,手动实现字符串的连接。于是我写就了以下代码:
  void Save(void)
  {
  DWORD dwSize, dwReaded, i, j, k;
  TCHAR szByte[5];
  // 读取源文件
  hFileSrc = CreateFile(szFileSrc, GENERIC_READ, 0, NULL, OPEN_ALWAYS, 0, NULL);
  dwSize = GetFileSize(hFileSrc, NULL);
  lpbySrc = NEW(BYTE, dwSize);
  ReadFile(hFileSrc, (LPVOID)lpbySrc, dwSize, &dwReaded, NULL);
  // 下面的MYSIZE是一个指示缓冲区大小的宏,由于计算大小较为繁琐且与本文无关,所以此处略去
  lpDst = NEW(TCHAR, MYSIZE);
  *lpDst = '\0';
  j = 0;
  for (i = 0; i < dwSize - 1; i++)
  {
  if (i % 16 == 15) // 处理换行
  {
  wsprintf(szByte, "%02X\r\n", lpbySrc[i]);
  k = 4;
  }
  else
  {
  wsprintf(szByte, "%02X ", lpbySrc[i]);
  k = 3;
  }
  lstrcpy(&lpDst[j], szByte);
  j += k;
  }
  // 处理最后一个字节

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品