| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Ansi to Unicode |
| Автор: Artem148 13.7.2011, 21:34 |
| Здрасте! Проблема: Ansi to Unicode... |
| Автор: kami 13.7.2011, 22:56 |
(была шутка, удалена) Поконкретнее, пожалуйста, потому что из описания проблемы вообще ничего не понятно. |
| Автор: Snowy 14.7.2011, 10:36 |
| Artem148, это очень хорошо, что у тебя проблемы. Форум для этого и существует, чтобы поддержать морально. Давай, мы с тобой!!! |
| Автор: Clasteruga 14.7.2011, 12:50 | ||||
|
| Автор: Artem148 14.7.2011, 14:29 |
| Подробнее: Функция DeviceIOControl (моя любимая) с параметром IOCTL_STORAGE_QUERY_PROPERTY возврашает: 1) VendorIdOffset 2) ProductIdOffset 3) ProductRevisionOffset 4) SerialNumberOffset смещение ASCII string(http://msdn.microsoft.com/en-us/library/ff800835(v=VS.85).aspx), а прога пишется в DELPHI XE(UnicodeString, как я понял) - следовательно отсюда: Проблема: Ansi to Unicode... P.S: Надеюсь я обьяснился, а не запутал сильнее |
| Автор: 14SatanA88 14.7.2011, 14:49 |
| издалека ты зашел, Artem148 |
| Автор: Snowy 14.7.2011, 15:39 |
| Так и в чём проблема-то? Нужен AnsiString? Ну так его и используй. Хочешь превратить его в юникодную строку? Дельфи это делает автоматически при использовании присваивания. |
| Автор: Artem148 14.7.2011, 17:05 | ||||||
Если б это было так (у меня или "китайскиие символы" или знаки "?")
Вместо нормальных надписей или китайсий или вопросительные знаки
Используем. В 2007 дельфи нормальные надписи. В ХЕ - нет. Перефразирую вопрос: как получить при запросе IOCTL_STORAGE_QUERY_PROPERTY нормальную запись, а не иероглифы? |
| Автор: Artem148 14.7.2011, 18:24 |
to Clasteruga: Результат использования твоей функции - знаки вопроса... ![]() |
| Автор: kami 14.7.2011, 18:28 |
код получения одной строки из ее смещения - в студию |
| Автор: Artem148 14.7.2011, 20:22 | ||
Ок. Но Автора уже не помю...
|
| Автор: kami 14.7.2011, 22:11 |
| Во всем приведенном коде заменить Char на AnsiChar и string на AnsiString (в asm не вникал) |
| Автор: CodeMonkey 15.7.2011, 07:36 |
Какое слово было здесь непонятно? |
| Автор: Чучмек 16.7.2011, 16:19 | ||||
А зачем такой гемор?
Это для 7 Для XE
|
| Автор: Artem148 18.7.2011, 18:06 | ||
Чучмек, ошибка:![]() Код:
|
| Автор: Чучмек 18.7.2011, 19:23 |
| А где выделяется память под STORAGE_DEVICE_DESCRIPTOR ? |
| Автор: Artem148 18.7.2011, 21:26 |
| А-а, даже если обнулять, то ошибка выскакивает... P.S Функция "ZeroMemory" заполняет указанный фрагмент памяти нулями ("обнуляет"), а выделяется при чтении декларации (Слово "Var" |
| Автор: Чучмек 18.7.2011, 22:22 |
var выделит 4 байта под указатель |
| Автор: Чучмек 18.7.2011, 22:44 | ||
|
| Автор: Artem148 19.7.2011, 09:13 |
| Чучмек - волшебник... Если не затруднит: объясните в чём ошибка? Спасибо всем за помощь! |
| Автор: Чучмек 19.7.2011, 21:43 |
| Прежде чем передавать в функцию указатель на структуру, нужно сначала выделить память под оную.(new(),getmem() и др.) А указатель в var указывает в никуда. "Собака" возвращает указатель на память выделенную для переменной. sizeof для любого указателя возвращает 4. |