Передача значения между "формами"
Есть массив 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.
Вопрос: как мне корректно передать этот массив из одного юнита в другой и обратно. Т.е. так, что б он мог меняться в обоих юнитах и значения его не разнились.
Чего я неправильно делаю?
Николай.
Цитата:
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[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() ??
Цитата:
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[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}