windows - Hvordan kan jeg kopiere en CHAR-variabel til WCHAR-variabel i C ++

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil konvertere en CHAR-fil til UNICODE-filen.
Jeg læser en filkarakter efter tegn i CHAR-filtype og gem derefter denne tegn i en CHAR-variabel, og derefter vil jeg kopiere denne CHAR-variabel til en WCHAR-variabel, og derefter skriver jeg WCHAR-variablen til en UNICODE-fil.


her er koden:


#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);

}


i fed kode er problemet, hvordan kan jeg kopiere CHAR-variabel til en WCHAR-variabel.
\_tccpy funktionen og strcpy funktionen kan ikke gøre dette, fordi prototypen af ​​dem begge er char eller wachar.

Bedste reference


Jeg har altid fundet disse snore grundlæggende og konverteringer meget nyttige, når de beskæftiger sig med Unicode i C ++. [5]

Andre referencer 1


Microsoft Specifik
Brug wmain i stedet for main, hvis du vil skrive bærbar kode, der overholder Unicode programmeringsmodellen.


wmain( int argc, wchar\_t *argv[ ], wchar\_t *envp[ ] )


wmain på ms http://msdn.microsoft.com/en-us/library/bky3b5dh(VS.80).aspx[6]