Я использую std::wstring в качестве строки стиля Unicode. Теперь я хочу получить размер байта wstring. Если я использую size() метод wstring, я просто получаю общее количество символов по моему wstring. Но байт должен быть размером () * 2. Есть ли официальный способ получить этот размер в байтах? Я не хочу использовать size () * 2 в моей программе .....
std::wstring
wstring
size()
Я хочу использовать в RegSetValueExW в качестве последнего параметра.
RegSetValueExW
Используйте str.size() * sizeof(wchar_t) или эквивалентный.
str.size() * sizeof(wchar_t)
Фактически, я не могу представить себе ни одну другую платформу, кроме Windows, которая имеет 2-байтовый wchar_t, 4 байта гораздо более распространены.
wchar_t
Почему бы и нет:
( str.size() * sizeof(wchar_t) ) ;
Или:
( str.size() * sizeof(std::wstring::traits_type::char_type) ) ;
std::wstring s = L"Howdy, world!"; //... std::size_t bytes_count = s.size() * sizeof s[0];
Вы можете использовать wcslen функцию
wcslen
Ссылка MSDN: http://msdn.microsoft.com/en-us/library/78zh94ax.aspx
Linux: http://linux.die.net/man/3/wcslen