我想将CHAR文件转换为UNICODE文件。 我在CHAR文件类型中逐个字符地读取文件,然后将此字符保存在CHAR变量中,然后我想将此CHAR变量复制到WCHAR变量,然后将WCHAR变量写入UNICODE文件。
这是代码:
#include<Windows.h>
#include<tchar.h>
int _tmain(int argc, LPCTSTR argv[])
{
HANDLE hInfile, hOutfile;
CHAR f1;
WCHAR f2;
DWORD Rd, Wrt;
INT i;
CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL,NULL);
CreateFile(argv[2], GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);
while ((ReadFile(hInfile, &f1, sizeof(CHAR), &Rd, NULL) && Rd>0))
{
**_tccpy(f2, f1);**
WriteFile(hOutfile, &f2, Rd, &Wrt, NULL);
}
CloseHandle(hInfile);
CloseHandle(hOutfile);
}
粗体代码中的是问题,如何将CHAR变量复制到WCHAR变量。 _tccpy函数和strcpy函数不能这样做,因为它们的原型都是char或wachar。
答案 0 :(得分:3)
Microsoft特定
如果要编写符合Unicode编程模型的可移植代码,请使用wmain
代替main
。
wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
wmain at ms http://msdn.microsoft.com/en-us/library/bky3b5dh(VS.80).aspx
答案 1 :(得分:1)
在C ++中处理Unicode时,我总是发现these string basics and conversions非常有用。