|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.05.2008, 07:39 | #1 |
Регистрация: 14.05.2008
Сообщений: 5
|
Описание структур и массивов в оконной форме
Начал осваивать Visual Stidio 2005 (C++).
Раньше писал на C++ Borland 3.1 под DOS. Построил оконную форму WinForm. Возникли проблемы с описанием структур (struct) и массивов. Пробовал описать их во внешнем файле (например, var.cpp) и вставить в файл основной формы и stdafx.h строку #include “var.h” (в файле заголовков даны ссылки extern на описанные переменные) Например, В var.cpp: union { struct { unsigned Simul:1; unsigned PP_Up:1; unsigned res:14; } f; unsigned Words[1]; } Flg; В var.h: extern union { struct { unsigned Simul:1; unsigned PP_Up:1; unsigned res:14; } f; unsigned Words[1]; } Flg; Компилятор ругается 'Flg' : redefinition; different basic types Если описать структуру в теле основного файла (где указана возможность добавления своих переменных) namespace WinForm { . . . public ref class Form1 : System::Windows::Forms::Form { public: Form1(void) { . . . } . . . protected: private: /// Required designer variable. //… описание моей структуры ,то выдается ошибка cannot define unnamed class, struct or union inside of managed type 'WinForm::Form1' А если тут описать какой-либо массив, например char Bytes[5]; то идёт ошибка: сannot define 'Bytes' as a member of managed 'WinForm::Form1': mixed types are not supported Описание обычных переменных (int, char, long) в этом месте никаких ошибок не даёт, и они нормально используются при работе приложения. Если вынести описания структуры или массива до оператора namespace WinForm, то компилятор это съедает, но если вставить обращение к элементу структуры (Flg::f::Simul=1, то возникает ошибка: 'Flg' : left of '::' must be a class/struct/union 'Simul' : undeclared identifier А элементы массива при этом не видны основному приложению. В Help’е никаких тонкостей по описанию структур и массивов для оконных форм не нашёл. Как правильно сделать в оконной форме описание структур, союзов и массивов и обращение к ним? |
14.05.2008, 08:28 | #2 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
просто ты юзаешь дот нет. создавай мфц приложение или вин апи, и так же описывай свои переменные в заголовочном файле,потом подключай к форме и юзай.
|
15.05.2008, 14:18 | #3 |
Регистрация: 14.05.2008
Сообщений: 5
|
Спасибо за совет, но методом перебора вариантов нашёл более простой способ – описал union как public перед namespace и переместил названия сразу после ключевых слов:
public union Flg { public: struct f { unsigned Simul:1; unsigned PP_Up:1; . . . }; unsigned Words[2]; }; а затем сделал подстановку путей: Flg::f Flag; // для структуры Flg W; // для массива В оконной форме обращение к ним: Flag.Simul=1; W.Words[0]=0; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
diff для структур | ag-moscow | Общие вопросы C/C++ | 2 | 09.04.2008 02:57 |
Программа. Паскаль. Описание внутри. | Nexx | Помощь студентам | 5 | 07.12.2007 20:07 |
QIP Dll's Описание у кого есть? | LEKA | Win Api | 10 | 18.05.2007 08:55 |