| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Записать значение в low-order word of LPCTSTR ? |
| Автор: WinDev 8.9.2011, 08:55 |
| Есть переменная типа LPCTSTR. Как записать нужное значение в младшее слово? |
| Автор: Cheloveck 8.9.2011, 09:20 | ||
Я понимаю, если бы проблема была со старшим... |
| Автор: mes 8.9.2011, 09:30 | ||||
Cheloveck, а с таким подходом старшее не затрется ? |
| Автор: newbee 8.9.2011, 09:31 |
LPCSTR - это ж char const*, нет? Зачем в него числа записывать? |
| Автор: bsa 8.9.2011, 10:39 |
не совсем. это скорее какой-нибудь const TCHAR *. Который в юникоде эквивалентен const wchar_t *, а в неюникоде - const char *. |
| Автор: Cheloveck 8.9.2011, 14:07 |
Затрётся. В вопросе этого не было. |
| Автор: newbee 8.9.2011, 14:32 |
| borisbn, я опечаталась. В этих типах не мудрено |
| Автор: borisbn 8.9.2011, 14:39 |
| newbee, ага. только сейчас обратил внимание. Но для вопроса ТС что char *, что wchar_t * (да хоть void *) - это не важно. Всё это указатель (4 байта на 32-х битной системе). А вот зачем в него (вернее в его младшую часть) что-то писать - вопрос |
| Автор: mes 8.9.2011, 15:14 |
было явно сказано, что нужно записать в младшее слово.. а не изменить целиком значение.. а это разные вещи.. |
| Автор: bsa 8.9.2011, 15:40 | ||
данный жестко привязан к одной платформе (win32, на win64 работать НЕ БУДЕТ). |
| Автор: maydjin 8.9.2011, 18:21 | ||
А разве на 64 битных платформах размер слова другой ? |
| Автор: bems 8.9.2011, 19:43 | ||
на машинах с прямым порядком байт работать не будет |
| Автор: bems 8.9.2011, 20:10 |
| Ну например гранулярность выделения памяти в виндах - 64к. Соответственно изменяя младшее слово можно гарантированно остаться в том же регионе. |
| Автор: bsa 8.9.2011, 21:55 |
Размер слова тот же, но вот размер указателя другой. И он не влезает в DWORD. |
| Автор: volatile 9.9.2011, 01:42 | ||
До кучи
Должна работать как на 32, так и на 64 битных платформах. |