powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Структурирование проекта
5 сообщений из 5, страница 1 из 1
Структурирование проекта
    #38118718
tur91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На пустом WF C++ проекте кнопка, которая вызывает функцию start_func из класса start. Эта функция читает файл в матрицу, из которой получает структуру RawData для дальнейшей обработки. К этой структуре должен быть доступ во многих файлах проекта.
Код: plaintext
1.
2.
3.
4.
5.
private: System::Void button1_Click(System::Object^sender,System::EventArgs^e)
{
    String^ filename = "C:\\AAA";
    start::start_func(filename);
}


Файл startfunc.h
Код: plaintext
1.
2.
3.
4.
5.
6.
#include "stdafx.h"
using namespace System;
public ref class start
{
public: static void start_func(String^);
};


Файл startfunc.cpp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include "stdafx.h"
#include "opendata.h"
#include "rawdata.h"

using namespace System;
public ref class start
{
public: static void start_func(String^ filename)
   {
	RawData a = open_data::getdata(filename);
	// . . . . . . . . . . . последующая обработка
   }
};


Файл opendata.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include "stdafx.h"
#include "rawdata.h"
using namespace System;

public ref class open_data
{
public: static RawData getdata(String^);
};


Файл opendata.cpp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#include "stdafx.h"
#include "rawdata.h"
using namespace System;

public ref class open_data
{
   public: static RawData getdata(String^ filename)
   {
	RawData data1;
	data1.a = (gcnew array<int, 2>(2, 3));
	data1.b = (gcnew array<int, 2>(2, 3));
	return data1;
   }
};


Файл rawdata.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#ifndef _RawData_
#define _RawData_

public ref class RawData
{
	public:
	array<int,2>^ a;
	array<int,2>^ b;
}; 
#endif

Извиняюсь за размер, не смог короче. Получаю ошибку error C3673: 'RawData' : class does not have a copy-constructor
Вопрос один: как функции getdata вернуть структуру RawData?
Я плохо понимаю смысл ref и static в классах и функциях, т.е. это можно и поменять, главное получить структуру.
...
Рейтинг: 0 / 0
Структурирование проекта
    #38118733
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tur91 public: static RawData^ getdata(String^ filename)


автор RawData^ a = open_data::getdata(filename);


Я уже давно не использовал C++/CLI но рискну предположить что не хватает вон той пимбочки красной.
...
Рейтинг: 0 / 0
Структурирование проекта
    #38118740
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компилится
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
#pragma once

ref class MyClass
{
public:
	MyClass(void);
	static MyClass^ MyMethod();
};



#include "stdafx.h"
#include "MyClass.h"


MyClass::MyClass(void)
{
}

MyClass^ MyClass::MyMethod()
{
	return gcnew MyClass();
}


#include "stdafx.h"
#include "MyClass.h"

using namespace System;

int main(array<System::String ^> ^args)
{
	MyClass^ mc = MyClass::MyMethod();

    return 0;
}




Твой случай
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#pragma once

ref class MyClass
{
public:
	MyClass(void);
	static MyClass MyMethod();
};



#include "stdafx.h"
#include "MyClass.h"


MyClass::MyClass(void)
{
}

MyClass MyClass::MyMethod()
{
	return gcnew MyClass();
}


#include "stdafx.h"
#include "MyClass.h"

using namespace System;

int main(array<System::String ^> ^args)
{
	MyClass mc = MyClass::MyMethod();

    return 0;
}


Error	1	error C3673: 'MyClass' : class does not have a copy-constructor	C:\Users\PuDon\Desktop\RepositoryExample\ConsoleApplication21\ConsoleApplication21\ConsoleApplication21.cpp	10	1	ConsoleApplication21


...
Рейтинг: 0 / 0
Структурирование проекта
    #38120327
tur91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lord British, спасибо!! Сейчас гораздо яснее, а то была просто катастрофа.

Тока далеко не уходи, у меня еще будет вопрос и по этому коду тоже. Но сначала надо все переварить.
...
Рейтинг: 0 / 0
Структурирование проекта
    #38122961
tur91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю пустой проект WF C++ с именем mystart и сажу на форму button1, а в событии пишу вызов функции, которая находится в отдельном файле, скажем в каком то стартовом классе: firstclass::startfunc();

Этот пустой проект с кнопкой находится где то в отдельной папке, не там где все проекты. Каждый раз когда я начинаю новый проект WF C++ я хотел бы сначала ликвидировать новую пустую форму и вызвать одной строчкой mystart и дальше открывать страницу где написан (фактически только продекларирован) firstclass и продолжать писать в startfunc(); что надо.

На самом деле у меня не просто форма с кнопкой, а вот такой мини-эксплорер и несколько несколько событий и листов для них.

Понятно ли я изложил свои нужды?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Структурирование проекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]