多くの関数では、出力である文字列のサイズを設定する必要があることがわかります。
GetComputerNameWには以下が必要です。
WCHAR wStrName[16U];
DWORD uSize = 16U;
GetComputerNameW(wStrName, &uSize);
RegSetValueExWには以下が必要です。
WCHAR wStrExec[1024U];
RegSetValueExW(..., (wcslen(wStrExec) + 1U) * sizeof(WCHAR));
GetWindowTextWには以下が必要です。
WCHAR wStrText[1024U];
GetWindowsTextW(..., sizeof(wStrText));
GetModuleBaseNameWには以下が必要です。
WCHAR wStrName[1024U];
GetModuleBaseNameW(..., sizeof(wStrName) / sizeof(WCHAR));
私の質問は、設定されたサイズの違いをどのように作るのですか? 文字列は常に WCHAR として定義され、設定されるサイズは大きく異なります。