powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Распечатать массив BYTE
16 сообщений из 16, страница 1 из 1
Распечатать массив BYTE
    #39961075
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
LPBYTE lpbBufData = NULL;
dwDataCnt = DdeGetData(hData, NULL, sizeof(DWORD), 0);
printf("dwDataCnt = %d", dwDataCnt);
lpbBufData = new BYTE[dwDataCnt];
dwRet = DdeGetData(hData, lpbBufData, dwDataCnt, 0);
printf((const char*)lpbBufData); //Печать данных
delete lpbBufData;


dwDataCnt = 4206 // размер данных
Ничего не печатает. Почему? И как распечатать?

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961082
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю для протокола ты должен анализировать значение dwRet и принимать решение
на его основе дальше.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961085
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, dwRet = 4206, - копия с консоли. Все ОК.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961086
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,

формат то укажи
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961088
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, формат чего? Пусть хоть крокозяблы печатает, пока по фиг.
Но сделал. Не помогает.(
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961090
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция пишет в байт-буфер.

Код: plaintext
1.
2.
3.
4.
5.
6.
DWORD DdeGetData(
  HDDEDATA hData,
  LPBYTE   pDst,
  DWORD    cbMax,
  DWORD    cbOff
);



И наверное этот буфер нельзя так грубо кидать в printf. Там могут быть и непечатные символы (коды от 1 до 31).
И может 0 сразу прилететь.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961091
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,

в цикле распечатай в шестнаднатеричном виде
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961092
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961108
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
YUBA,

в цикле распечатай в шестнаднатеричном виде
Да, что-то выдает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
0 0 4 0 29 0 a 0 2 0 8d 0 7 ca ee e4 20 50 55 54 15 d6 e5 ed e0 20 ef ee f1 eb 2e 20 f1 e4 e5 eb ea e8 20 50 55 54 e d2 e5 ee f0 2e 20 f6 e5
 ed e0 20 50 55 54 6 d1 f2 f0 e0 e9 ea f d2 e5 ee f0 2e 20 f6 e5 ed e0 20 43 41 4c 4c 16 d6 e5 ed e0 20 ef ee f1 eb 2e 20 f1 e4 e5 eb ea e8
 20 43 41 4c 4c d c2 ee eb e0 f2 e8 eb fc ed ee f1 f2 fc 8 ca ee e4 20 43 41 4c 4c 10 d6 e5 ed e0 20 e1 e0 e7 2e 20 e0 ea f2 e8 e2 e0 9 d2 fd
 f2 e0 20 43 41 4c 4c 2 0 c 0 b 52 49 30 37 30 30 30 30 42 52 30 1 0 20 0 0 0 0 0 0 0 49 40 0 0 0 0 0 0 4e 40 0 0 0 0 0 17 f1 40 0 0 0 0 40
 e4 e7 40 2 0 1 0 0 1 0 8 0 3d a d7 a3 70 8d 54 40 2 0 c 0 b 52 49 30 37 30 30 30 30 42 46 30 1 0 10 0 0 0 0 0 60 5 fd 40 a4 70 3d a d7 23
 22 c0 2 0 d 0 b 52 49 30 37 32 35 30 30 42 52 30 0 1 0 18 0 0 0 0 0 0 0 4e 40 0 0 0 0 40 b3 f1 40 0 0 0 0 c0 ab e6 40 2 0 1 0 0 1 0 8 0 f8 5
 и т.д.

Что, не знаю, но на всяк случай массив BYTE предварительно обнулил.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961114
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ктож так печатает. Делай padding с нулями.

Код: plaintext
1.
"%02hhX"
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961116
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, пока не имеет значения. Главное, массив заполняется.
Теперь надо решать как его парсить.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961137
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA
Теперь надо решать как его парсить.

для этого неплохо бы знать, что ожидается в этом массиве
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961143
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
для этого неплохо бы знать, что ожидается в этом массиве
Да, неплохо, но этого я еще не знаю. Много букв и цифр - это пока все что известно.)
С Excel эта зараза как-то сама разбирается, но это я еще не проходил.) Бум разбираться.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961152
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA
Код: plaintext
1.
printf((const char*)lpbBufData); //Печать данных


Тут ожидается строка с нуль терминатором. У тебя первый байт 0, на нем все и заканчивается.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961163
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уже разобрались.

Плохо что без контекста мы разбираемся в огрызке кода. В самом деле в буфере мог быть и текст.
Но автор мог-бы и заранее нам сказать about expectations.
...
Рейтинг: 0 / 0
Распечатать массив BYTE
    #39961180
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да уже разобрались.
Разобрались. Замечательно. Excel тоже отлично разбирается и по ячейкам эту хрень раскладывает. Где-то должны быть строки форматирования. Из MS это непонятно.
ЗЫ я DDEML использую.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Распечатать массив BYTE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]