Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2009, 08:24   #1
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию Как обратиться к переменой в другом модуле.

Имеется два модуля:
MainModule.cpp
AddModule.cpp
переменная объявлена в MainModule.h (в классе, переменная некоторого контрола)
необходимо использовать её в addModule.cpp
В Delphi их соединяли в разделе uses.
Заранее спасибо.
nusik вне форума Ответить с цитированием
Старый 01.07.2009, 09:04   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А в C++ их "соединяют" посредством директивы #include. В Вашем случае, в начало модуля "addModule.cpp" надо добавить:
#include "MainModule.h"
pu4koff вне форума Ответить с цитированием
Старый 01.07.2009, 09:34   #3
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

я сделал это , более того я добавил в начало MainModule.cpp
#include "addModule.h",
но переменную опдсказчик кода так и не увидел.
Давайте кусок кода приведу, может тогда яснее будет,
MainModule=VerticalTreeDld
AddModule=AddİtemDlg

Код:
class CVerticalTreeDlg : public CDialog
{
// Konstruktion
public:
	CVerticalTreeDlg(CWnd* pParent = NULL);	// Standard-Konstruktor

// Dialogfelddaten
	//{{AFX_DATA(CVerticalTreeDlg)
	enum { IDD = IDD_VERTICALTREE_DIALOG };
	CVerticalTree	m_TestTree;
.....
Необходимо использовать переменную m_TestTree в модуле
AddItemDlg.cpp конкретно вот здесь

Код:
void CAddItemDlg::OnBnClickedOk()
{   
	CString str1,str2;
	m_edit1.GetWindowTextW(str1);
	m_edit2.GetWindowTextW(str2);
	str1=str1+str2;
	m_edit1.SetWindowTextW(str2);
           //m_TestTree.NodeName=str1l
    
}
Хочу чтобы можно было бы работать с этой переменной как если бы мы работал в CVerticalTreeDlg.
nusik вне форума Ответить с цитированием
Старый 01.07.2009, 10:04   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А CAddItemDlg имеет указатель на конкретный экземпляр CVerticalTreeDlg?
Необходимо, чтобы из CAddItemDlg была доступна какая-то такая переменная:
CVerticalTreeDlg *dlg;
и тогда доступ к нужному члену будет элементарен: dlg->m_TestTree;
Думайте теперь как в CAddItemDlg передавать конкретный экземпляр диалога. m_TestTree - это не переменная, а член класса и получить/изменить её значение можно только для конкретного объекта, а вы пытаетесь это сделать даже не для класса. Можете еще объявить этот член статическим:
static CVerticalTree m_TestTree;
и тогда доступ к нему можно будет получить таким образом:
CVerticalTreeDlg::m_TestTree.NodeNa me = str1
Только сначала прочитайте про статические члены и про ООП в целом, а то глупость какую-нибудь в итоге напишите
pu4koff вне форума Ответить с цитированием
Старый 01.07.2009, 10:22   #5
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

Спасибо большое.
Времени во врез , читать нет времени.
nusik вне форума Ответить с цитированием
Старый 02.07.2009, 14:56   #6
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

Если кому понадобится...вот как сделал
1)Созданием статическую переменную в своем классе
Код:
class CVerticalTree : public CTreeCtrl
{
....
public
  static CString			NodeName;
....
2)Добавляем во второй модуль
Код:
include "CVerticalTree.h"
взаимно связываем модули

3)Инициализируем во втором модуле
Код:
CString CVerticalTree::NodeName = "asd";
После инклудов написал .

4)используем
Код:
void CAddItemDlg::OnBnClickedButton2()
{          CString str;
    	CVerticalTree::NodeName=str;
}
nusik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
F1Book. как обратиться к ячейке? ira_sweet Общие вопросы Delphi 0 28.05.2009 20:17
вызвать метод класса, находящегося в другом модуле zalum Общие вопросы Delphi 4 06.05.2009 08:47
WebBrowser (Как загрузить код из переменой) jocry Помощь студентам 4 06.01.2009 14:28
Как обратиться к активной форме? Dimon88 Помощь студентам 4 18.10.2008 00:03
Как обратиться к ячейке таблицы Аналитик Помощь студентам 16 29.11.2007 20:11