怎样将中文输出到文件?解决方案

怎样将中文输出到文件?
我使用下面的代码怎么输出的全是乱码呢?
注意我没用MFC

TCHAR   str[]   =   TEXT( "你好 ");
static   HANDLE   hFile;
DWORD   dwNumByte;

hFile   =   CreateFile(TEXT( "out.txt "),GENERIC_READ   |   GENERIC_WRITE, FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_FLAG_SEQUENTIAL_SCAN,(HANDLE)NULL);

if(hFile   ==   INVALID_HANDLE_VALUE)
{
            MessageBox(NULL,TEXT( "打开文件错误 "),NULL,MB_OK);
            DebugBreak();
}

//设置文件指针为文件尾
SetFilePointer(hFile,NULL,NULL,FILE_END);
WriteFile(hFile,str,lstrlen(str)   *   sizeof(TCHAR),&dwNumByte,NULL);

CloseHandle(hFile);

我记得昨天还可以正常输出,今天就不行了。怪!

------解决方案--------------------
WideCharToMultiByte
写的时候转化成多字节。
读的时候再转化回来
------解决方案--------------------
如果你昨天可以,可能是你昨天是使用非Unicode编译的.
如果使用Unicode编译,就要WideCharToMultiByte