Как я могу скопировать переменную CHAR в переменную WCHAR в C ++ - PullRequest
1 голос
/ 16 апреля 2011

Я хочу преобразовать файл 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 ]

3 голосов
/ 12 января 2012

Специфично для Microsoft Используйте wmain вместо main, если вы хотите написать переносимый код, соответствующий модели программирования Unicode.

wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )

wmain at ms http://msdn.microsoft.com/en-us/library/bky3b5dh(VS.80).aspx

1 голос
/ 16 апреля 2011

Я всегда находил эти основы строк и преобразования очень полезными при работе с Unicode в C ++.

...