объявляю структуру таким образом:
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 является в таком случае локальной.
Пробовал объявлять в конструкторе таже проблема, и объявление в классе не помогает.