Умеет ли VC подсчитывать длину статических строк? я имею ввиду макрос, а не функцию. Вообще например в InitUnicodeString стоит такая штука: sizeof(L"..."); Но так не совсем удобно. хотелось бы что-то типа: PCHAR pBuffer1 = "..."; ULONG BufferSize = sizeof(pBuffer1); в результате компилятор, как честный человек, выдаёт 4... Я, конечно знаю что указатель весит 4байта, но мне нужен размер строки... неужели чтобы описать строку и её длину необходимо прописывать её 2 раза? PCHAR pBuffer1 = "..."; ULONG BufferSize = sizeof("...");
ой что-то вы такое накрутили 1) PCHAR это всегда указатель его размер зависит от платформы 2) Обычные статические строки объявляются так: Код (Text): WCHAR str[256]; CHAR str2[] = "some string value"; sizeof возвращает размер любой статической переменной всегда в байтах, без учёта нуля для строк т.е. в первом случае получаем 512, во втором 13 3) что значит это: Код (Text): PCHAR pBuffer1 = "..."; ? в правилах С в кавычки заключаются строки, если вы хотите проинициализировать указатель аски кодами от '.' (в данном случае числом 0x002e2e2e) то пишите в однирарных кавычках , хотя скорее всего вы хотели так cтроку описать 4) зачем вам выделять ещё одну переменную для размера статической строки если её можно всегда получить через sizeof(str) ?
простите, но с учетом нуля. Во втором случае вообще 18 должно быть. нет. WCHAR UnicodeBuffer[] = L"Hello World"; ULONG UnicodeLength = sizeof(UnicodeBuffer);
Great мда... всё никак не приучу себя к нормальному режиму сна, глянул на свой вчерашний пост сейчас ужаснулся хD ПС люди не верьте мне в такое время
...правдой? Истиной (как TRUE) пишется с одной "н", с другой стороны, на форуме слово "истинной" в самый раз ;D))