Связка двух окон в Visual Studio 2005 (С++)

  • Автор темы TalgatG
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

TalgatG

Здраствуйте ребята! Я пишу на Visual Studio 2005 (C++). У меня такая проблема: Есть два окна: главное MainForm (Main.h) и дочернее ChildForm (Child.h). На главном (Main) расположен обект OLEDBСonnection. На дочернем (Child) DataSet.
В заголовке главного окна пишу #include "Child.h" и содаю дочернее . Теперь для объекта DataSet расположеного на дочернем окне мне нужно указать connection, который драсположен на главном окне.
Далее в заголовке дочернего окна пишу #include "Main.h", затем "DataSet->connection=MainForm->connection". Но это не срабатывает. Выдает ошибку: "undeclared MainForm". Получается что-то вроде циклической ссылки и compiler игнорирует один из заголовочных файлов (Main.h). Это работает в С++ Builder, но здесь нет. Буду признателен если найдете время и ответите. Спасибо заранее.
 
E

European

Стандартная проблема и стандартное решение: #include "Main.h" пишешь в Child.cpp
 
T

TalgatG

European, спасибо за ответ! К сожалению нет. не получается. Выдает ошибку или "undeclared MainForm" или "undeclared ChildForm", в зависимомти как расположешь инклуды в обоих файлах. Проблема в том что для двух окон не получается создать ссылки друг на друга. Но мне кажется должен быть выход. спасибо еще раз.
 
E

European

Код:
DataSet->connection=MainForm->connection
Эта строка в каком файле?
 
T

TalgatG

это строка в Child.h. Я наверное не понятно объяснился. Если проще: мне нужен доступ к объектам ChildForm из mainForm и наоборот к объектам mainForm из ChildForm, одновременно.
 
E

European

<!--QuoteBegin-TalgatG+21:02:2007, 12:08 -->
<span class="vbquote">(TalgatG @ 21:02:2007, 12:08 )</span><!--QuoteEBegin-->Я наверное не понятно объяснился. Если проще: мне нужен доступ к объектам ChildForm из mainForm и наоборот к объектам mainForm из ChildForm, одновременно
[snapback]56794" rel="nofollow" target="_blank[/snapback]​
[/quote]
Я тебя прекрасно понял. Только строку эту перенеси в *cpp файл.
 
T

TalgatG

я пробовал, к сожалению не получается. спасибо еще раз
 
E

European

Подробная инструкция:
1 - в файле Child.h ОТКЛЮЧИТЬ Main.h
2 - перед объявлением ChildForm написать class MainForm; (или как он там у тебя называется)
3 - из Child.h выкинуть в Child.срр весь код, манипулирующий MainForm (оставить только объявление)
4 - в файле Child.срр ПОДКЛЮЧИТЬ Main.h
5 - в Main.h ПОДКЛЮЧИТЬ Child.h

Все должно работать
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!