IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Объявление глобальной структуры VC++
ninja
сообщение 9.12.2011 9:58
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый день. Пишу приложение WinForms на Visual C++, столкнулся с проблемой объявления структуры, точнее вроде работает, но не так как хотелось, необходимо объявить массив структур глобально, на что компилятор не ругается, а когда смотрю отладчиком говорит что переменная не существует. Помогите пожалуйста разобраться.

объявляю структуру таким образом:

namespace ppc {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	int ii;
            


typedef struct mystruct
	{
		int a;
		int b;
	}m;

mystruct my[100];



public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		bool Check1, Check2;
		int i;
	private: System::Windows::Forms::Button^  button2;
	public: 
		String ^Str;
	
		Form1(void)
		{
			InitializeComponent();

		}

	protected:
		/// <summary>
		/// Освободить все используемые ресурсы.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	protected: 

	private:
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

		void InitializeComponent(void)
		{
                                      // Код конструктора....
                                          .....
                                 }


Функция в которой вызываю переменную:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
     {
				 
	 my[1].a = 3;
     }


На что компилятор при отладке говорит что переменная my[1].a не существует.

но если сделать так:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
     {
	 mystruct my2[100];			 
	 my2[1].a = 3;
     }


Все работает, но переменная my2 является в таком случае локальной.

Пробовал объявлять в конструкторе таже проблема, и объявление в классе не помогает.

Сообщение отредактировано: ninja - 9.12.2011 10:00
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 30.07.2025 22:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"