Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с модулями, для чего нужны модули? 
:(
    Опции темы
rthsobakas
Дата 27.5.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Есть 2 формы. В одной глобальной  обявлена переменная, во втоой форме  к ней обратится нельзя.
Наверно нужно испльзовать модуль дополнительный Unit3.h н-р.
Итак, создал ЮНИТ3 и в конец вставил int hhh;(к примеру, глобальная переменная)
Потом в формах 1 и 2 объявил сверху include unit3.h.
Но почему то он все равно не видит переменную. Искал инфу в гугле и яндексе, но не нашел(по работе с модулями искал)
Смотрел книгу Шильда ,Хоменки,Рейсдорфа ,но там ниче по модулям нет.
Помогите разобраться!
PM   Вверх
rthsobakas
Дата 27.5.2008, 13:31 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Или, если есть, скиньте ссылку на статью по модулям или какой нить материал)
PM   Вверх
JackYF
Дата 27.5.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Актуальный код и полностью ругань от компилятора в студию.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Lazin
Дата 27.5.2008, 13:54 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



extern тебе в помощь

Unit1.cpp
Код

...
int global = 0;
...

Unit1.h
Код

...
extern int global;
...

Unit2.cpp

Код

#include "Unit1.h"
...
global = 1;
...

PM MAIL Skype GTalk   Вверх
rthsobakas
Дата 27.5.2008, 14:12 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Цитата

Актуальный код и полностью ругань от компилятора в студию.


Ща попробую.

Итак
unit1.cpp

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit3.h"// Это 3 модуль
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TForm1 *Form2; //для Form.Show() 


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1Click(TObject *Sender)
{
if (ToolButton1->Down==true) {
  Form2->Show();
}

}



Дальше поехали
unit2.cpp

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{

oText[1]->NAME=Form2->Memo1->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{
Form2->Hide();
}


 И наконец

МОДУЛЬ3
 UNIT3.cpp

Код

//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit3.h"
#include "Unit2.h"
//---------------------------------------------------------------------------

#pragma package(smart_init)

struct oText // шаблон текстовой стрoки
{
AnsiString NAME;
int X;
int Y;
int STYLE;
int CHARSET;
int SIZE;
int COLOR;
};

oText sText[255]; // массив из текстовых строк






А ошибка следующая(в unit2.cpp)
[C++ Error] Unit2.cpp(21): E2451 Undefined symbol 'oText'

Добавлено через 3 минуты и 26 секунд
Lazin,спасибо за совет,но я хочу с модулями разобраться)

А ещё забыл наверно уточнить(хз важно это или нет или и так ясно), в проекте 2 формы (юнит1 и юнит2) и просто модуль юнит3(просто добавил как форму)
PM   Вверх
rthsobakas
Дата 27.5.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Бррр, сделал как Лазин сказал, но так как там тип переменной oText вылезли ещё ошибки

[C++ Error] Unit3.cpp(23): E2356 Type mismatch in redeclaration of 'sText'
[C++ Error] Unit3.h(6): E2344 Earlier declaration of 'sText'

unit3.h
Код

#ifndef Unit3H
#define Unit3H
//---------------------------------------------------------------------------
extern sText[255];
#endif


Unit3.cpp
Код

//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit3.h"
#include "Unit2.h"
//---------------------------------------------------------------------------

#pragma package(smart_init)

struct oText // шаблон текстовой стрoки
{
AnsiString NAME;
int X;
int Y;
int STYLE;
int CHARSET;
int SIZE;
int COLOR;
};

oText sText[255]; // массив из текстовых строк



Добавлено через 2 минуты и 51 секунду
Или 

[C++ Error] Unit3.h(6): E2141 Declaration syntax error

Если UNIT3.h
Код

//---------------------------------------------------------------------------

#ifndef Unit3H
#define Unit3H
//---------------------------------------------------------------------------
extern oText sText[255];
#endif

PM   Вверх
Lazin
Дата 27.5.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(rthsobakas @  27.5.2008,  14:30 Найти цитируемый пост)
extern sText[255];

а тип?

Код

extern oText sText[255];

PM MAIL Skype GTalk   Вверх
rthsobakas
Дата 27.5.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



ну так и сяк пытался написать.
Чуть выше посмотри я уже это писал. 
[C++ Error] Unit3.h(6): E2141 Declaration syntax error

Добавлено @ 14:54
тоже самое с типом ИНТ сделал- все отлично, а вот со структурой че то не то. Дописать может че то надо перед типом?

Это сообщение отредактировал(а) rthsobakas - 27.5.2008, 14:55
PM   Вверх
Lazin
Дата 27.5.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Код

struct oText // шаблон текстовой стрoки
{
AnsiString NAME;
int X;
int Y;
int STYLE;
int CHARSET;
int SIZE;
int COLOR;
};


перенеси в Unit3.h
PM MAIL Skype GTalk   Вверх
rthsobakas
Дата 27.5.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Ага спасибо, заработало)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.