1
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine); 
printf("%s",s); 

ここで、 Computer\Nのみの出力を受け取りました。 Computer\Network\Value のような出力が必要です。そのための解決策を与える..

4

3 に答える 3

3

Machine が指す文字列は Unicode 文字列であるため、文字「N」の後に 1 つの NULL 文字があります。したがって、非ユニコード文字列連結を使用すると、そのような出力が得られます。このように Unicode 文字列と非 Unicode 文字列を混在させないでください。次のように実行できます。

LPCTSTR Machine=L"Network\\Value";
TCHAR  s[100]=_T("Computer\\");
_tcscat(s,Machine); 
std::wcout<<s;
于 2009-08-12T05:12:54.900 に答える
2

ANSI 文字列と Unicode 文字列を比較しようとしています。それはうまくいきません。最初の文字列を ANSI にするか

LPCSTR Machine="Network\\Value";

または MultiByteToWideChar() で 2 番目のものを変換します。

于 2009-08-12T05:13:12.077 に答える
0

純粋な C90:

wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));
于 2009-08-12T07:25:30.170 に答える