Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 375 376 [377] 378 379 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5641
,
|
|
|
|
Не внезапно: Цитата For single-byte and multibyte strings, Length returns the number of bytes used by the string. |
|
Сообщ.
#5642
,
|
|
|
|
Как именно?? Конкретный пример кода можешь дать? Это не Я издеваюсь, а Эмбаркадеро. Открываем модуль System.pas и видим: UTF8String = type AnsiString(65001); Чем UTF32 хуже/лучше?? Добавлено Цитата Romkin @ For single-byte and multibyte strings, Length returns the number of bytes used by the string. Но при этом для UnicodeString - кол-во символов? Логично. |
|
Сообщ.
#5643
,
|
|
|
|
Стандарта и самого-то не было. По крайней мере Qt был зачат в начале 90х. Первый стандарт С++ появился в 98, и не сразу всеми поддерживался, были различия в реализациях. |
|
Сообщ.
#5644
,
|
|
|
|
Цитата jack128 @ Открываем модуль System.pas и видим: UTF8String = type AnsiString(65001); Чем UTF32 хуже/лучше?? Тем, что у него размер элемента не 1 (это минимально), а 4 байта, однако. Добавлено Цитата jack128 @ Но при этом для UnicodeString - кол-во символов? Логично. Увы То есть, для ansistring и unicodestring - символы. Фактически оно возвращает количество байт деленное на размер элемента, без пробега. Написать свою функцию - не проблема.UCS4 - должна быть та же UnicodeString, с установкой через SetCodePage. Но в 2010, к сожалению, не реализовано. |
|
Сообщ.
#5645
,
|
|
|
|
Цитата D_KEY @ Стандарта и самого-то не было. По крайней мере Qt был зачат в начале 90х. Первый стандарт С++ появился в 98, и не сразу всеми поддерживался, были различия в реализациях. Ну вот, в итоге имеем кучу типов стрингов, при работе с разными проектами, к чему тут делфистов цеплять? ... Да и не везде этот могучий std::string использовать получается, как выше уже написал при работе с WinApi функциями, он летит глубоко в топку... |
|
Сообщ.
#5646
,
|
|
|
|
Цитата KILLER @ Ну вот, в итоге имеем кучу типов стрингов, при работе с разными проектами, к чему тут делфистов цеплять? ![]() Разговор шел о traits, строки - просто пример. В новом стандарте уже 4 класс строк на его основе. Цитата Да и не везде этот могучий std::string использовать получается, как выше уже написал при работе с WinApi функциями, он летит глубоко в топку... Сделай характеристики для символов WinAPI и юзай std::basic_string. Кстати, это может быть хорошей иллюстрацией для данного обсуждения. Чего там не так с WinAPI строками-то? |
|
Сообщ.
#5647
,
|
|
|
|
Цитата D_KEY @ Сделай характеристики для символов WinAPI и юзай std::basic_string. Хм. Как насчет выделения памяти в разных менеджерах для разных типов строк? |
|
Сообщ.
#5648
,
|
|
|
|
Цитата D_KEY @ Сделай характеристики для символов WinAPI и юзай std::basic_string. Интересно было бы посмотреть на это Цитата D_KEY @ Чего там не так с WinAPI строками-то? То что функции как правило принимают LPTSTR буфер, куда записывают данные, в расшифровке, с выключенным юникодом LPTSTR - это char*, с включенным юникодом - это wchar_t*. И что мне передавать в такую функцию? std::string::c_str() ? Ну тогда ахтунг будет... |
|
Сообщ.
#5649
,
|
|
|
|
Цитата Romkin @ Хм. Как насчет выделения памяти в разных менеджерах для разных типов строк? В плюсах всем контейнерам можно указывать аллокатор. |
|
Сообщ.
#5650
,
|
|
|
|
Цитата KILLER @ То что функции как правило принимают LPTSTR буфер, куда записывают данные, в расшифровке, с выключенным юникодом LPTSTR - это char*, с включенным юникодом - это wchar_t*. И что мне передавать в такую функцию? std::string::c_str() ? Ну тогда ахтунг будет... ![]() ![]() ![]() typedef std::basic_string<TCHAR> tstring; Не? |
|
Сообщ.
#5651
,
|
|
|
|
Цитата D_KEY @ Не? как работать с этим? Что мне передавать, например в функцию: ![]() ![]() DWORD WINAPI GetCurrentDirectory( __in DWORD nBufferLength, __out LPTSTR lpBuffer ); ?? |
|
Сообщ.
#5652
,
|
|
|
|
KILLER, ну, так это out параметр. Тут уж ничего не попишешь.
|
|
Сообщ.
#5653
,
|
|
|
|
Цитата MyNameIsIgor @ KILLER, ну, так это out параметр. Тут уж ничего не попишешь. Так я и говорю, что толку от могучего std::string, когда работешь с WinApi тем же ? Или с какой нибудь Сшной библиотекой, которых уйма просто... std:string, std::string'ом, да не везде его поюзаешь, какой классный он бы нибыл... |
|
Сообщ.
#5654
,
|
|
|
|
Цитата KILLER @ Так я и говорю, что толку от могучего std::string, когда работешь с WinApi тем же ? Или с какой нибудь Сшной библиотекой, которых уйма просто... Во-первых, это интимные проблемы WinAPI и сишных либ. Во-вторых, строки в плюсах и не проектировали для работы с такими библиотеками. |
|
Сообщ.
#5655
,
|
|
|
|
Цитата MyNameIsIgor @ Во-первых, это интимные проблемы WinAPI и сишных либ. Как это может быть проблеммой WinAPI и сишных либ? Цитата MyNameIsIgor @ Во-вторых, строки в плюсах и не проектировали для работы с такими библиотеками. новедь они работают как раз с последовательностями типа char* ... |