Я вижу, что для множества функций вам нужно установить размер для строки, которая является выходом.Параметр размера из функции
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, а размеры устанавливаются так сильно.
Короче говоря, вам нужно прочитать документацию по каждой отдельной функции, точно определить, что нужно пройти, а затем передать это. Обратите внимание, что 'sizeof (wStrName)/sizeof (WCHAR)' можно сократить до '_countof (wStrName)', используя '_countof' из Visual C++' '(' _countof' - это нестандартное расширение). –
Не могли бы вы перефразировать свой вопрос, пожалуйста? Я не понимаю, о чем вы спрашиваете. Вы спрашиваете, почему нам нужно передавать информацию о размере или как эти функции используют информацию о размере или что-то еще? – Praetorian
Неверный параметр 'GetWindowTextW'. Он должен быть 1024 или 'sizeof (wStrText)/sizeof (WCHAR)'. –