Piszę program, są tam 2 klasy: Form1 i Core.
Metody z klasy Form1 (np buttonClick) wywołują metody z klasy Core - implementacja wywołania w Form1.cpp
Chciałbym też, żeby jednocześnie metody z klasy Core mogły zadziałać na formatce (Form1),
Core.cpp
#include "StdAfx.h"
#include "Core.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
data_generator_2::Core::Core(void)
{
//constructor
}
System::Void data_generator_2::Core::malloc_tables(data_generator_2::Form1^ f1)
{
//funkcje standardowe bibliotek języka C
f1->textBox1->AppendText(String::Format("{0} Zaalokowano pamięć",System::DateTime::UtcNow));
//data_generator_2::Form1::textBox1->AppendText(String::Format("{0} Zaalokowano pamięć",System::DateTime::UtcNow));
}
System::Void data_generator_2::Core::free_tables(void)
{
//funkcje standardowe bibliotek języka C
}
Core.h
#pragma once
#include "stdafx.h"
namespace data_generator_2 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
struct miasta_
{
char *nazwa;
int wielkosc;
};
public ref class Core
{
//rozmiary tablic znaków
public: int s_imiona;
public: int s_nazwiska;
public: int s_ulice;
public: int s_miasta;
public: int s_rodzaje;
public: int s_producenci;
public: int s_word1;
public: int s_word2;
public: int s_word3;
//tablice znaków
public: char **imiona_m;
public: char **imiona_k;
public: char **nazwiska_m;
public: char **nazwiska_k;
public: char **ulice;
public: struct miasta_ *miasta;
public: char **rodzaje;
public: char **producenci;
//METODY
public:Core(void);
public: System::Void malloc_tables(data_generator_2::Form1^ f1);
public: System::Void free_tables(void);
};//class
}//namespace
Form1.cpp
#include "StdAfx.h"
#include "Form1.h"
System::Void data_generator_2::Form1::button1_Click(System::Object^ sender, System::EventArgs^ e)
{
this->cor->malloc_tables(this);
this->cor->free_tables();
}//GENERUJ
System::Void data_generator_2::Form1::button2_Click(System::Object^ sender, System::EventArgs^ e)
{
this->textBox1->Clear();
}//clear log
Form1.h
#pragma once
#include "stdafx.h"
#include "Core.h"
namespace data_generator_2 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace data_generator_2;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
cor = gcnew data_generator_2::Core();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::GroupBox^ groupBox1;
public: System::Windows::Forms::NumericUpDown^ numericUpDown6;
private:
public: System::Windows::Forms::NumericUpDown^ numericUpDown5;
public: System::Windows::Forms::NumericUpDown^ numericUpDown4;
public: System::Windows::Forms::NumericUpDown^ numericUpDown3;
public: System::Windows::Forms::NumericUpDown^ numericUpDown2;
public: System::Windows::Forms::NumericUpDown^ numericUpDown1;
public: System::Windows::Forms::DateTimePicker^ dateTimePicker2;
public: System::Windows::Forms::DateTimePicker^ dateTimePicker1;
protected:
public:data_generator_2::Core^ cor;
//bebechy formatki
}
#pragma endregion
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e);
public: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e);
};
}
Jak zrobić, żeby metoda Core::malloc_tables() mogła wywołać metodę f1->textBox1->AppendText() ?
powyższy kod w trakcie kompilacji krzyczy:
(...)\Core.h(46) : error C2039: 'Form1' : is not a member of 'data_generator_2'
(...)\Core.h(46) : error C2061: syntax error : identifier 'Form1'