Привет всем ! Мне надо определить длину строку в байтах. Читаю МСДН (http://msdn2.microsoft.com/en-us/library/ms647492.aspx) : Что означает or WCHAR values ??? Означает ли это что lstrlen может возвращать количество символов (т.е. количество байт деленное на 2) ? Как тогда узнать реальное количество байт ? Заранее спасибо.
Код (Text): Означает ли это что lstrlen может возвращать количество символов Да возвращается длина в символах. И это правильно, потому-что как правило нужно знать именно кол-во сиволов а не байт. *2;
Не может, а возвращает Если работаешь с юникодом, умножь число символов на 2 А вообще, есть две функции lstrlenA (lstrlen) и lstrlenW Используешь первую - получаешь число байт, вторую - слов.
lstrlen (lstrlenA) возвращает длину строки в байтах. lstrlenW - UNICODE версия, возвращает длину строки в словах (чтобы ее использовать нужно либо явно писать lstrlenW, либо в фасме подключать win32w.inc вместо win32a.inc).
rmn Первую с юникодом лучше не использовать, т.к. в некоторых юникодовых символах (пробел, запятая и т.д.) старший байт равен нулю и это собьёт с толку lstrlenA.
То, что каждая функция используется для строки соответствующего формата показалось настолько очевидным, что не стал об этом говорить