Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 527
от 10.06.2004, 16:43

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1690
Отправлено ответов: 3364
Активность: 199.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

bocha
Статус: Доверительный
Общий рейтинг: 149.39
[Подробней >>]
CrackLab
Статус: Опытный
Общий рейтинг: 139.26
[Подробней >>]
www
Статус: Доверительный
Общий рейтинг: 118.81
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1679. Здравствуйте, уважаемые эксперты! У меня вопрос: как в буфер записать байты данных в hex-виде с помо... (ответов: 3)
Вопрос № 1680. Здравствуйте эксперты. У меня такой вопрос: Как установлявается связь программы использующая DAO с б... (ответов: 1)
Вопрос № 1681. Здравствуйте, уважаемые эксперты! Вы, наверное, меня неправильно поняли. Но мне нужно записать в буф... (ответов: 3)

Вопросов: 3, ответов: 7


 Вопрос № 1679

Здравствуйте, уважаемые эксперты!
У меня вопрос: как в буфер записать байты данных в hex-виде с помощью функции strcpy или strncpy. Можно с помощью других функций, главное, чтобы можно было писать в одну строчку и в hex-виде. Пытался делать следующим образом (по ответу эксперта bocha
на вопрос № 1672, наверное он ошибся, ведь в кавычках идут символы строки, а не байты):
#include
unsigned char buffer[255];
void main()
{
strncpy(buffer,"x2Fx3Fx21x0Dx0A",5);
}
При просмотре отладчиком в буфер пишутся "левые" данные:
buffer[0]='x0'
buffer[1]='x0'
buffer[2]='x0'
buffer[3]='x0'
buffer[4]='x0'
Заранее Вам большое спасибо!


Приложение:


Вопрос отправлен: 06.06.2004, 17:38
Отправитель: Эдуард

[Следующий вопрос >>] [Список вопросов]

Отвечает bocha

Доброе время суток, Эдуард!
Извините за то, что ввел Вас в заблуждение. Перед иксами нули ставить было не надо. Примерно через минуту после того, как отправил ответ, я начал громко и грязно ругаться, благо в округе никого небыло. '\0'-это ноль-символ, так, что данные не левые, а просто строка не правильно записана

Приложение:

Ответ отправлен: 06.06.2004, 19:22
Отправитель: bocha


Отвечает CrackLab

Доброе время суток, Эдуард!
Хелпом совсем не пользуетесь? Вам кстати уже дали несколько правильных ответов.
Так и пишите:
char buffer[255];
strcpy(buffer, "/?! ");

Приложение:

Ответ отправлен: 06.06.2004, 17:51
Отправитель: CrackLab


Отвечает www

Добрый день, Эдуард!
Если надо записать в буфур значения байт в hex виде,
ъто это можно сдежать так:
char buffer[20];
sprintf(buffer,"0x%0.2X,0x%0.2X,0x%0.2X,0x%0.2X,0x%0.2X",'/','?','!','',' ');


Ответ отправлен: 06.06.2004, 21:23
Отправитель: www


 Вопрос № 1680

Здравствуйте эксперты.
У меня такой вопрос:
Как установлявается связь программы использующая DAO с библиотекой dao350.dll?
У меня в реестре прописано
HKEY_CLASSES_ROOTTypeLib{00025E01-0000-0000-C000-000000000046}
библиотеки размещены в
C:Program FilesCommon FilesMicrosoft SharedDao
На другом компе тоже самое и в реестре и на диске по тому же пути, а прога не пашет, выдает сообщение:
"Не удается инициализировать DAO/Jet обработчит баз данных"
Единственная разница - где запускается прога, у меня ось - win98, а на другом winXP. Как сделать чтобы програ работала на обоих осях? Может кто работал с DAO и просветит в этом вопросе. Хотелось бы получить исчерпывающий ответ.
Заранее благодарен.
Абрамовский Иван.



Вопрос отправлен: 06.06.2004, 23:37
Отправитель: Иван Абрамовский (ivan171@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает bocha

Добрый день, Иван Абрамовский!
Redistributing Microsoft Visual C++ 6.0 Applications
Installing DAO Support Files
You can install the necessary files to support a DAO application in one of two ways:
Use the Redist version of DAO, which is found in DaosdkRedist on Disc 1 of the Visual C++ 6.0 product CDs. The Setup file, which is in DaosdkRedistDisk1, installs the necessary files to support a DAO application.
Hand-install the necessary DAO support files. You can find information about which files need to be installed and registered in the file Daosetup.rtf. Daosetup.rtf is installed when you install the full version of the DAO SDK. See DaosdkRetailDisk1 for the Setup file to install the DAO SDK. This version of DAO not only supports DAO running on a computer, but also gives you the necessary support to develop a DAO application.
To install the DAO SDK, the target computer needs current system files. Therefore, you may need to first run Vbrun60.exe or Dcom98.exe. See the section "Redistributing Visual C++ ActiveX Controls" earlier in this article for more information on Dcom98.exe and Vbrun60.exe.


Ответ отправлен: 10.06.2004, 07:00
Отправитель: bocha


 Вопрос № 1681

Здравствуйте, уважаемые эксперты!
Вы, наверное, меня неправильно поняли. Но мне нужно записать в буфер символы не в ASCII-виде (strcpy(buffer,”/?!/r/n”)), а в HEX. Т.е. имеется буфер buffer[255]. И данные нужно писать так:
buffer[0]=0x2F
buffer[1]=0x3F
buffer[2]=0x21
buffer[3]=0x0A
buffer[4]=0x0D
Но это получается громоздко, поэтому я у Вас и просил, как можно эти данные записать одной строчкой при помощи команды strcpy или каких-то других.
Почему не подходит в ASCII-символах (strcpy(buffer,”/?!/r/n”)), потому что у меня имеются символы STX (hex-код 0х02), SOH (hex-код 0х01), ETX (hex-код 0х03), ЕОТ (hex-код 0х04), ACK (hex-код 0х06), NAK (hex-код 0х15) и другие и соответственно записать их в ASCII символах не получается (так как во-первых на клаве нет таких значков (рожица белая и черная, сердечко, ромбик, значок параграфа и т.д. ), во-вторых, даже если есть способ записать их в ASCII символах, то это при отладке будет только путать, в-третьих в HEX-виде удобнее, т.к. я уже знаю, что байт 0х01 – это символ SOH (Start Of Head), байт 0х06 – это символ ACK (положительный ответ))
Надеюсь подробно объяснил!
ЗЫ.
2 CrackLab: если возник вопрос, то первым делом я в HELP, вторым – на www.rambler.ru, третьим – на www.rusfaq.ru. Не в обиду :)
2 bocha: опять ошиблись! strcpy(buf,"x2Fx3Fx21x0Dx0A"); При отладке смотрим:
buf[0]=x, buf[1]=2, buf[2]=F, buf[3]=x и т.д. А нужно, чтобы buf[0]=0x2F, buf[1]=0x3F, buf[2]=0x21 и т.д.
Жду ответов!


Приложение:


Вопрос отправлен: 07.06.2004, 01:24
Отправитель: Эдуард

[Следующий вопрос >>] [Список вопросов]

Отвечает www

Добрый день, Эдуард!
При отладке путать ничего не будет просто нужно использовать шестнадцатеричное отображение данных (для VC++ - правой кнопкой мыши в Watch-ах -> Hexadecimal Display). А в твоем случае ("нужно, чтобы buf[0]=0x2F, buf[1]=0x3F, buf[2]=0x21 и т.д.") hex-вид этих символов будет занимать четыре байта 1-'0',2-'x',3-'2',4-'F' (например).
В то время как для символа buf[0](например)отведен только ОДИН байт. Так, что не заморачивайся в твоем отладчике наверняка есть возможность просматривать символы как в десятичном, так и в hex-видах. Удачи.


Ответ отправлен: 07.06.2004, 19:08
Отправитель: www


Отвечает CrackLab

Приветствую Вас, Эдуард!
ААааааа например так: (смотри в приложении)

Приложение:

Ответ отправлен: 07.06.2004, 01:51
Отправитель: CrackLab


Отвечает bocha

Приветствую Вас, Эдуард!
Я не ошибся, просто формма ответа и в приложении почему-то не хочет показывать бэкслэши. Короче в строку вставляется последовательность \xHH- бэкслэш-икс-хекскод. Все работает нормально, а в первый раз ответил неправильно, т.к. поторопился. В первом ответе убери из строки нули, а во втором перед иксами вставь обратную косую черту.

Ответ отправлен: 07.06.2004, 03:49
Отправитель: bocha



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (14)
Perl (1)
Builder / Delphi (18)
Pascal (22)
Basic / VBA (3)
Java / JavaScript (4)
PHP (14)
Криптография (9)
WinAPI (11)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (53)
"Железо" (32)
Поиск информации (14)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (11)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (11)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное