Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача значения между "формами"

968
24 июля 2003 года
BIGNICK
12 / / 20.08.2000
Вот такая задачка.
Есть массив unsigned char a[7]={0xAA,0,0,0,0,0,0};

Он объявлен в unit1.cpp
В unit1.h написано extern unsigned char a[7];

Внутри unit2.cpp - #include "unit1.h"

Так вот, если вызвать во втором юните какое-нибуть значение, например a[0], выдается 0хАА. Все правильно.
Если в первом юните присвоить в какой-либо функции a[0]=0xff, то во втором юните при вызове a[0] один хрен выдается 0хАА... когда в первом юните она равна 0xFF.

Вопрос: как мне корректно передать этот массив из одного юнита в другой и обратно. Т.е. так, что б он мог меняться в обоих юнитах и значения его не разнились.

Чего я неправильно делаю?

Николай.
2.2K
24 июля 2003 года
Storm
20 / / 17.07.2003
Цитата:
Originally posted by BIGNICK
Вот такая задачка.
Есть массив unsigned char a[7]={0xAA,0,0,0,0,0,0};

Он объявлен в unit1.cpp
В unit1.h написано extern unsigned char a[7];

Внутри unit2.cpp - #include "unit1.h"

Так вот, если вызвать во втором юните какое-нибуть значение, например a[0], выдается 0хАА. Все правильно.
Если в первом юните присвоить в какой-либо функции a[0]=0xff, то во втором юните при вызове a[0] один хрен выдается 0хАА... когда в первом юните она равна 0xFF.

Вопрос: как мне корректно передать этот массив из одного юнита в другой и обратно. Т.е. так, что б он мог меняться в обоих юнитах и значения его не разнились.

Чего я неправильно делаю?

Николай.





В какой функции ты прсваиваешь значения массиву a[]
Случаем не CreateForm() ??

384
25 июля 2003 года
mikeshilkin
95 / / 20.04.2000
Цитата:
Originally posted by BIGNICK
Вот такая задачка.
Есть массив unsigned char a[7]={0xAA,0,0,0,0,0,0};

Он объявлен в unit1.cpp
В unit1.h написано extern unsigned char a[7];

Внутри unit2.cpp - #include "unit1.h"

Так вот, если вызвать во втором юните какое-нибуть значение, например a[0], выдается 0хАА. Все правильно.
Если в первом юните присвоить в какой-либо функции a[0]=0xff, то во втором юните при вызове a[0] один хрен выдается 0хАА... когда в первом юните она равна 0xFF.

Вопрос: как мне корректно передать этот массив из одного юнита в другой и обратно. Т.е. так, что б он мог меняться в обоих юнитах и значения его не разнились.

Чего я неправильно делаю?

Николай.



Я в модуле объвляю unsigned char *a;
В файле когда нужно a=(unsigned char*)malloc(размер);
В другом файле extern unsigned char *a;

И все проблемы. Работает проверено временем. Единственно нужно следить чтобы объект a был иницилизирован перед использованием if(a!=0){OK}
else {error}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог