readfile读取ReadMe.txt出现乱码

dongchaotiantian 2009-06-28 03:53:47
readfile读取ReadMe.txt出现乱码,但是新建一个文本文件后,将ReadMe.txt文件里的内容复制到新建的一个文本文件,就不是乱码了。即使将这个文本文件重名为ReadMe.txt也不是。
代码如下:
#define DTFLAGS (DT_WORDBREAK | DT_EXPANDTABS | DT_NOCLIP | DT_NOPREFIX)

#define BUF_SIZE 2000


// 全局变量:
HINSTANCE hInst; // 当前实例
TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名

// 此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
static RECT rect;
DWORD dwBytesRead;
char buf[BUF_SIZE];
HANDLE hFile;

switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...

hFile = CreateFile(TEXT("F:\\win32\\ListBoxSample2\\ListBoxSample2\\ReadMe.txt"), // file to open
GENERIC_READ, // open for reading
FILE_SHARE_READ, // share for reading
NULL, // default security
OPEN_EXISTING, // existing file only
0, // normal file
NULL); // no attr. template

if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, TEXT("INVALID HFILE"),NULL, MB_OK);
return 0;
}

if(!ReadFile(hFile, buf, BUF_SIZE, &dwBytesRead, NULL))
{
MessageBox(NULL, TEXT("INVALID READ"),NULL, MB_OK);
return 0;
}
else
{
DrawTextA(hdc, (LPCSTR)buf, dwBytesRead, &rect, DTFLAGS);
}

EndPaint(hWnd, &ps);
break;

case WM_SIZE:
rect.right = LOWORD(lParam);
rect.bottom = HIWORD(lParam);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
...全文
312 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
XYPilot 2009-06-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 dongchaotiantian 的帖子:]
readfile读取ReadMe.txt出现乱码,但是新建一个文本文件后,将ReadMe.txt文件里的内容复制到新建的一个文本文件,就不是乱码了。即使将这个文本文件重名为ReadMe.txt也不是。
[/Quote]

可能是内码的问题,你检查一下你前后两个txt文件的编码方式?

64,995

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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