1

CHAR ファイルを UNICODE ファイルに変換したい。CHAR ファイル タイプでファイルを 1 文字ずつ読み取り、この文字を 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 であるためです。

4

2 に答える 2

4

Unicodeプログラミングモデルに準拠したポータブルコードを記述したい場合wmainの代わりに、Microsoft固有の用途。main

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

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

于 2012-01-12T16:47:54.250 に答える
1

C++ で Unicode を扱う場合、これらの文字列の基本と変換が非常に役立つことが常にわかっています。

于 2011-04-16T07:04:32.787 に答える