如何在C ++中将CHAR变量复制到WCHAR变量

时间:2011-04-16 06:42:27

标签: c++ windows char wchar

我想将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。

2 个答案:

答案 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非常有用。