Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите разобраться с подключением классов(VS C++ .NET)  (Прочитано 11761 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kiler4747
Участник

by
Offline Offline

« : 17-04-2011 15:45 » 

В файле Exploer.h находится 2 моих класса: ref class CopyFileAndfolder и ref class Exploer, но незнаю как подключить их ко 2-й форме(copy_delete.h), в первой все работает

Exploer.h:
Код: (C++)
#include "copy_delete.h"
...
using namespace Exploer_02class;
ref class CopyFileAndfolder
{
   public : copy_delete^ form;
   ....
}

ref class Exploer
{...}

Exploer.cpp:
Код: (C++)
#include "stdafx.h"
#include "copy_delete.h"
#pragma once
#include "Exploer.h"

copy_delete.h(Вторая форма):
Код: (C++)
#pragma once
#include "Exploer.h"
namespace Exploer_02class {
...
public ref class copy_delete : public System::Windows::Forms::Form
        {
        private:
                Exploer^ exploer; //здесь возникает ошибка:error C2143: syntax error : missing ';' before '^'
                CopyFileAndfolder^ cop; //здесь возникает ошибка:error C2143: syntax error : missing ';' before '^'
        ....
       
};
}

copy_delete.cpp:
Код: (C++)
#include "StdAfx.h"
#include "copy_delete.h"
#pragma once
#include "Exploer.h"

StdAfx.h:
Код: (C++)
#pragma once
#include "Exploer.h"
#include "form2.h"

StdAfx.cpp:
Код: (C++)
#include "stdafx.h"
« Последнее редактирование: 17-04-2011 17:38 от Finch » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 17-04-2011 17:52 » 

kiler4747, ref class - это класс .NET. Его никуда подключать не надо. Достаточно, чтобы он находится внутри сборки.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
kiler4747
Участник

by
Offline Offline

« Ответ #2 : 17-04-2011 19:55 » 

Создал новый проект и свой класс, но в форме не хочет объявляться переменная типа Exploer и CopyFileAndfolder (
error C2143: syntax error : missing ';' before '^' ;
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int;
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int;)


Exploer.h
Код:
using namespace System;
using namespace System::IO;
using namespace System::Windows::Forms;
using namespace System::Threading;
#include "Form1.h"
using namespace Exploer_03class;
#pragma once
ref class Exploer
{
public:
int i;
String^ FullPath;
String^ Name;
String^ extension;
__int64 size;
DirectoryInfo^ dirinf;
FileInfo^ fileinf;
array<TreeNode^>^ treenode(String^ path);
String^ back(String^ path);
array<TreeNode^>^ treenode(DirectoryInfo^ directoryinf);
array<TreeNode^>^ treenode(array<DirectoryInfo^>^ ardirinfo);
array<ListViewItem^>^ listitem(String^ path);
array<ListViewItem^>^ listitem(DirectoryInfo^ directoryinf);
void strtcopy(array<String^>^ pathout, array<String^>^ pathin);
void strmove (array<String^>^ patnout, array<String^>^ pathin);
String^ sizeofbyte(__int64 size);
Exploer(void);
};

ref class CopyFileAndfolder
{
public:
CopyFileAndfolder(void);
Thread^ thr;
int bufsize;
array<String^>^ pathout;
array<String^>^ pathin;
Form1^ form;
ProgressBar^ progresspar;
void copyfromfiletofile ( String^ pathout, String^ pathin );
void copy(String^ pathout, String^ pathin );
void copyy();
void copyfile(String^ pathout, String^ pathin);
void move(String^ pathout, String^ patnin );
void movee();
void movefile(String^ pathout, String^ pathin );
};

Form1.h
Код:
#pragma once

namespace Exploer_03class {

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

/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
private:
Exploer^ exploer;
CopyFileAndfolder^ copyfolderandfile;

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}

private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->SuspendLayout();
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(852, 394);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);

}
#pragma endregion
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
}
};
}

Exploer.cpp
#include "StdAfx.h"
#include "Exploer.h"

stdafx.h
#pragma once

stdafx.cpp
#include "stdafx.h"
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 18-04-2011 05:58 » 

kiler4747, значит надо подключать. Обычным #include. А ещё лучше вынести все #include в StdAfx.h.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines