Создал 2 формы WinForms, хочу передать массив с одной формы во вторую.
Для этого в отдельном файле обьявил указатель на целое число, в первой форме я его заполняю, а во второй хочу его вывести.
Файл, в котором обьявлен указатель. Decl.h
#pragma once
#ifndef DECL
#define DECL
int *crit_arr;
#endif
Главная форма. MyForm.h
//
#pragma once
#include "Decl.h"
// функция заполнения массива внутри класса MyForm
void get_Crit() {
crit_arr[0] = crit_arr[3] = crit_arr[8] = 1;
crit_arr[1] = Convert::ToInt32(textBox1->Text);
crit_arr[2] = Convert::ToInt32(textBox2->Text);
crit_arr[5] = Convert::ToInt32(textBox3->Text);
crit_arr[3] = 1 / crit_arr[1];
crit_arr[6] = 1 / crit_arr[2];
crit_arr[7] = 1 / crit_arr[5];
}
// Кнопка, по которой открывается вторая форма
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
crit_arr = new int[9];
get_Crit();
CritTable^ F2 = gcnew CritTable(this);
F2->Show();
}
Вторая форма CritForm.h
#pragma once
#include "Decl.h" // ругается при наличии именно на этот include
// Конструктор, принимающий первую форму
public:
CritTable(System::Windows::Forms::Form ^ frm)
{
InitializeComponent();
mainform = frm;
}
// функция, которая вывод 1й элемент массива во второй форме.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int arr[9];
arr[0] = crit_arr[0];
textBox1->Text = Convert::ToString(arr[0]);
}
При таком раскладе при компиляции мне выбрасывает ошибку:
C2065: crit_arr: необьявленный идентификатор.
Если убрать с функции во второй форме все о массиве, то выбрасывает ошибку :
LNK1169 и LNK2005...
как посоветуете сделать?