Ошибка вычисления длины строки wchar_t
Делаю автозагрузку приложения, проблема в lstrlenW(appPath), она не вычисляет полную длину строки, отбрасывает несколько последних символов.
// Получаем путь к приложению
wchar_t appPath[32767];
GetModuleFileNameW(NULL, appPath, 32767);
// Заполняем путь в реестре
wchar_t *autorunPath = L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
wchar_t *appName = L"CApplication.exe";
// Объявляем ключ
HKEY hKey = NULL;
// Записываем в реестр
RegOpenKeyExW(HKEY_CURRENT_USER, autorunPath, 0, KEY_WRITE, &hKey);
RegSetValueExW(hKey, appName, 0, REG_SZ, (BYTE *)appPath, lstrlenW(appPath));
RegCloseKey(hKey);
Источник: Stack Overflow на русском