LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
ここで、 Computer\Nのみの出力を受け取りました。 Computer\Network\Value のような出力が必要です。そのための解決策を与える..
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
ここで、 Computer\Nのみの出力を受け取りました。 Computer\Network\Value のような出力が必要です。そのための解決策を与える..
Machine が指す文字列は Unicode 文字列であるため、文字「N」の後に 1 つの NULL 文字があります。したがって、非ユニコード文字列連結を使用すると、そのような出力が得られます。このように Unicode 文字列と非 Unicode 文字列を混在させないでください。次のように実行できます。
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
ANSI 文字列と Unicode 文字列を比較しようとしています。それはうまくいきません。最初の文字列を ANSI にするか
LPCSTR Machine="Network\\Value";
または MultiByteToWideChar() で 2 番目のものを変換します。
純粋な C90:
wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));