Страница 2 из 2
Re: Указатель на указатель
Добавлено: 15 июн 2017, 20:15
dadreamer
Axel писал(а):размер возвращаемого адреса на unsigned char
Так вы сами можете поменять в CLFN: ПКМ -> Configure -> вкладка "Parameters" -> Len -> Data type -> Unsigned 8-bit Integer.
Axel писал(а):теперь надо заполнять массив 8 битными значениями
В CLFN на MoveBlock поменяли, осталось поменять представление у Initialize Array: ПКМ по числу-константе -> Representation -> U8.
Так. Указатель оставьте U64 (Pointer Sized Int), он не может содержать меньше 32 или 64 бит.
Re: Указатель на указатель
Добавлено: 16 июн 2017, 03:19
Axel
В CLFN на MoveBlock поменяли
Вы имели ввиду поменять в MoveBlock Src и Size на U8?
И не надо размер массива умножать на 4?
Re: Указатель на указатель
Добавлено: 16 июн 2017, 10:59
dadreamer
AxelОстальное у вас вроде соответствует.
Axel писал(а):И не надо размер массива умножать на 4?
Нет, конечно. Вы же копируете байты, а не что-то другое. MoveBlock работает с байтами, ваша либа теперь тоже работает с байтами. Раньше работала с I32, а как известно, в 32-х битах 4 байта.
Re: Указатель на указатель
Добавлено: 16 июн 2017, 13:26
Axel
Спасибо! Но все же записать не получается...
Быть может дело в адресе на указатель... На сколько корректно, что указатель unsigned char?
unsigned int было все работало, но когда программисты поменяли формат возвращаемого значения запись не идет... А если делаю формат char, то вообще виснет...
Код: Выделить всё
int IDLA_get_write_address(unsigned char** lpadr) //Это функция возврата адреса на указатель
Re: Указатель на указатель
Добавлено: 16 июн 2017, 17:11
dadreamer
Axel, у вас косяк в программе. Посмотрите внимательно на свой код (сверху) и на мой (снизу). Ошибка элементарная.
Вот вам подсказка, если сами не догадаетесь.
Re: Указатель на указатель
Добавлено: 16 июн 2017, 18:41
Axel
Спасибо огромное, за помощь, но я имел ввиду, что запись не идет в лог файл(записать не получается), по адресу да, все честно копируется... Но дальше по этому адресу куда я копирую, DLL должна взять данные и все записывать в текстовый файл(лог).. Но текстовый файл пустой... Поэтому я и обратил внимание, что формат адреса unsigned char, куда я должен скопировать данные, а потом эти данные по этому адресу(я их помещаю туда) должны уйти в лог... Когда формат был int, все шло... Извините, что столько времени отнял у Вас, думаю проблема в программистах, которые написали DLL, свяжусь с ними
Re: Указатель на указатель
Добавлено: 16 июн 2017, 18:54
dadreamer
Axel писал(а):но я имел ввиду, что запись не идет в лог файл(записать не получается)
Вы бы выражались конкретнее, а то до этого момента ни слова ни про какой лог-файл не было. Помощь помощью, а в этой теме по-моему гороскоп составить проще, чем решить какие-то элементарные проблемы.
Axel писал(а):DLL должна взять данные и все записывать в текстовый файл(лог)
Отдебажьте библиотеку, проверьте, доходят ли до неё данные (messagebox и т.п.).
Axel писал(а):Когда формат был int, все шло...
Мне кажется, от смены представления чисел запись в файл не должна отключаться. Даже если выбрано некорректное представление, в файл всё равно что-то запишется. А если пишется поток байтов в бинарном виде, то ошибиться в этом плане невозможно.
Может, какие-то не те данные шлёте или не шлёте?..
Re: Указатель на указатель
Добавлено: 17 июн 2017, 01:51
Axel
Спасибо за помощь, вина была за мной, в этот раз конфигурация записи в лог другая, поэтому и лог не писался, надо было начинать с программистов, а я подумал, на себя, что делаю что-то не так, извините за глупый вопрос вообщем... Хотел еще уточнить, - обязательно писать 0 на вход CLFN?
Re: Указатель на указатель
Добавлено: 17 июн 2017, 12:28
dadreamer
Axel писал(а):Хотел еще уточнить, - обязательно писать 0 на вход CLFN?
Если имеется в виду вот этот ноль
- 2017-06-17_14-20-39.jpg (10.16 КБ) 7719 просмотров
то его при желании можно отключить. Эта константа - инициализатор входного терминала CLFN. Когда она подключена,
подстраивает тип входного параметра под эту константу. Если она не подключена,
подстраивает тип входного параметра, используя индикатор на выходе из CLFN. Если же такой индикатор так же не подключен, то входной терминал будет иметь тип void (неопределён) и
попросит при запуске
указать тип терминала. Кроме того, данный параметр (ноль) передаётся в вызываемую DLL. Когда параметр передаётся не по указателю, то значение параметра (ноль или не ноль) важно, т.к. используется дальше в вызванной функции. Если параметр передаётся по указателю (как в вашем случае), то значение параметра не важно, т.к. будет всё равно переписано функцией в процессе вызова. Хотя, многое зависит от библиотеки. Если функция принимает параметр по указателю (по ссылке), но параметр используется для чтения, а не для записи, то тогда также важно, что вы передаёте в CLFN.
Re: Указатель на указатель
Добавлено: 17 июн 2017, 15:29
Blackman
Разбирая архивы нашел эту небольшую библиотеку. Возможно есть и в VIPM-e. Я добавил расширение .zip для быстрого доступа, просмотра и установки руками. Для установки при помощи VIPM удалить это расширение.
Re: Указатель на указатель
Добавлено: 19 июн 2017, 20:46
Axel
Спасибо огромное за помощь!!!