|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.01.2008, 09:04 | #1 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Доступ к строке
В общем я не оригинален... Функция возвращает указатель на массив байт. Разыменовываю его, преобразую к необходимому типу (структура, одно из полей которой является строка PChar). Так вот в этой строке почему-то вижу всякую чушь. При этом числовые данные из этой же структуры читаются нормально. Блин, не могу понять, где я опять ошибся. Исходник и необходимые библиотеки прилагаю. Он небольшой. Интересующая меня строка выглядит так:
Form2.Edit2.Text := PServiceFailureActions(Buf)^.lpComm and; Помогите, люди добрые... |
16.01.2008, 13:14 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Вообщем, исходник я не смог нормально открыть ( и не буду )... какой тип у lpCommand ? BufSize равен ли он TServiceFailureActions ? И почему вы используете Buf: Pointer, а не например Buf: PServiceFailureActions ? Разницы нет то ))
|
16.01.2008, 14:08 | #3 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
|
16.01.2008, 15:41 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
А ну тогда возможно, что Параметр lpCommand ServiceFailureActions получает не верный адресс куска выдленного текста, и поэтому Вы наблюдаете "казилябрики" Вообщем Вы говорите массив байт Pointer - я считаю что это вообщет никакой не массив, а число простое
|
16.01.2008, 18:55 | #5 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
я тоже не смог нормально открыть твой исходник..
Баламут, ты лучше покажи объявление типа TServiceFailureActions и объявление типа массива и кусок проблемного кода. |
17.01.2008, 00:09 | #6 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
В архиве нету класса для компонент: RzButton и RzPanel.
|
17.01.2008, 01:24 | #7 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Код:
А вот так в MSDN: Код:
З.Ы. Исходник перезалил. Теперь так только стандартные компоненты. Да, и компилировал я в BDS2006 если это имеет какое-то значение. Последний раз редактировалось rpy3uH; 17.01.2008 в 12:06. |
20.01.2008, 11:29 | #8 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Тема сползает вниз, а поблема так и не решена... Может все-таки есть идеи? Буду признателен за все.
|
20.01.2008, 15:37 | #9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
а может там строки в юникоде?
я посмотрел объявление этой функции QueryServiceConfig2. function QueryServiceConfig2; external advapi32 name 'QueryServiceConfig2' + AWSuffix; наврено как раз этот суффикс является буквой W. Чтобы точно знать что результаты являются обычными строками, то вызывай функцию QueryServiceConfig2A Последний раз редактировалось rpy3uH; 20.01.2008 в 15:40. |
21.01.2008, 00:56 | #10 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Все, решил проблему... Просто нужно было довести до логического конца эксперименты с функциями ...А и ...W. Вызов-то я сделал, а вот результат правильно интерпретировать забыл...
Form2.Edit2.Text := PServiceFailureActionsW(Buf)^.lpCommand; В одной букве было дело и кривых руках... Последний раз редактировалось Баламут; 21.01.2008 в 01:18. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление символа в строке | Fantom | Общие вопросы Delphi | 2 | 23.06.2008 16:03 |
Вывод символов в строке | Karl_Karlovi4 | БД в Delphi | 12 | 03.06.2008 13:31 |
кол-во букв в строке символов (Си) | Newman | Помощь студентам | 1 | 04.12.2007 02:19 |
Поиск текста в строке | CoDeR | Общие вопросы Delphi | 8 | 02.10.2007 01:01 |