Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Указатель на буфер

Вы не вошли.

 Поиск | Регистрация | Вход 

Слава
28.01.2005 11:00:30
#1

Гость

Указатель на буфер

Чему он должен быть равен? У меня почему-то его значение data = 0, а *data=1. Это нормально?
И еще: почему-то данные считываются только из первой половины буфера, а при попытке чтения второй половины компилятор выдает "Violation access...". Работаю в СБилдер6. Подскажите, в чем может быть проблема?

28.01.2005 12:00:51
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

указатель должен быть равен адресу буфера..

Слава
28.01.2005 20:16:40
#3

Гость

Re: Указатель на буфер

Спасибо, конечно, но это я и сам знаю. А чему обычно равен этот адрес? По-моему, явно не 0 или 1.

Слава
29.01.2005 11:07:39
#4

Гость

Re: Указатель на буфер

Проблема появляется при переносе кода инициализации карты из примера в CBuilder. Все нормально, за исключением этого чертова указателя на буфер. Пробовал посмотреть его значение в самом примере - там оно отлично от 1 и равно 5599... Короче, нормальное значение. Как только перетаскиваю код в Билдер - облом. Причем где ошибка, понять не могу. Все переменные объявлены вроде бы правильно... Может быть кто-нибудь посмотрит код?

31.01.2005 10:22:05
#5

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

Вы результаты выполнения функций проверяйте...где-то что-то не так выполнилось... может биос не положили ...

Слава
31.01.2005 14:29:43
#6

Гость

Re: Указатель на буфер

Самое интересное, что ни одна из функций не выдает ошибки - то есть, возвращаемое ими значение отлично от 0.

31.01.2005 15:08:56
#7

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

вы код зашлите под мыло я гляну...

Слава
31.01.2005 23:20:49
#8

Гость

Re: Указатель на буфер

Отправил, спасибо.

01.02.2005 10:45:53
#9

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

а плата какая? И я боюст что рages Вы очень много хотите...вот она буфер и не выделяет...

Слава
01.02.2005 16:45:10
#10

Гость

Re: Указатель на буфер

Плата L783. Нет, дело не в количестве pages. Даже если оставлять исходные 32, результат от этого не меняется. Все равно data = 1. Что-то где-то не так срабатывает.

01.02.2005 17:10:15
#11

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

ну попробуйте пример дословно в билдере запустить как консольный...

Слава
01.02.2005 19:36:40
#12

Гость

Re: Указатель на буфер

Запускал - работает. Если же изменять код на приложение - не работает... Насколько я понимаю, в моем коде явных ошибок нет?

02.02.2005 10:11:42
#13

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

Ну тут я не помогу...я в билдере не работаю...но чудес не бывает...там после RequestBuffer и установки параметров в Set... значения некоторые меняются - они как? нормальные?

Слава
02.02.2005 18:49:34
#14

Гость

Re: Указатель на буфер

Не понял - какие значения должны изменяться? Переменные pages, IrqStep, Rate после всех установок остаются такими, как я их задал. *sync=0, как и должно быть. Kadr получает нормальное значение. А больше там и меняться-то нечему... Только с data проблема. А программисты что-нибудь говорят?

Слава
02.02.2005 22:07:20
#15

Гость

Re: Указатель на буфер

Мне так сильно кажется, что неправильно отрабатывает функция SetParameters. Если объявлять переменную data не как указатель, а как простую переменную, то ее значение после выполнения SetParameters не равно 1. если же как указатель - 1. Может быть где-то происходит конфликт программной оболочки с функциями библиотеки vxdapi? Глупо конечно, но всякое возможно... Какая есть более свежая библиотека? Может с ней получится?

03.02.2005 10:14:48
#16

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Указатель на буфер

ну там надо настроить указатель просто - можно и переменную запихать... только потом указателю присвоить значение этой переменной...