これとこのスレッドから、Windows では wchar_t が 16 ビットであり、Linux では wchar_t が 32 ビットであることを理解しています。
私のサーバーは Windows ベースで、クライアントは Linux です。
サーバーには、クライアントからホスト名を取得するための API があります。クライアントが Windows ベースの場合、GetComputerNameW を実行して Wide-String を返すことができます。ただし、クライアントが Linux ベースの場合、事態は複雑になります。
最初の単純なアプローチとして、Windows サーバー側に wchar_t* を返すことを期待して mbstowcs() を使用しました。ただし、この LPWSTR (Linux clinet 側に typedef wchar_t* LPWSTR があります) は、wchar_t が 16 ビットであると想定されるため、Windows では認識できません。
では、Linux で gethostname() の出力を変換する - これは char* で unsigned short (16 ビット) に私の唯一のオプションですか?
前もって感謝します!