Доступ к моему обьекту из другого юнита
От: mxl33  
Дата: 04.01.05 16:29
Оценка:
В общем у меня програмка на BC++ с несколькими формами
В модуле главной формы (MainUnit.cpp) я объявляю что-то вроде:
TMyClass MyObject;


Внутри MainUnit.cpp работа с MyObject идет нормально, но в других модулях (OtherUnit.cpp) этот обьект никак не видится:

1) если в OtherUnit.cpp я напишу
#include "MainUnit.cpp";
то при линковке компилер ругнется на то что MyObject обьявляется два раза (один раз в MainUnit.cpp и один — в OtherUnit.cpp) и фактически в OtherUnit.cpp будет вестись работа с другим экземпляром обьекта

2) наскока я знаю такие вещи решаются при помощи extern. Но компилятор опять ругается на неверный синтаксис (?!?), или extern не может работать с объектами классов?

Вопрос: что делать и как быть? Мне надо обьявить обьект, который будет доступен в других модулях
Re: Доступ к моему обьекту из другого юнита
От: Bell Россия  
Дата: 04.01.05 16:37
Оценка:
Здравствуйте, mxl33, Вы писали:

M>Вопрос: что делать и как быть? Мне надо обьявить обьект, который будет доступен в других модулях


//Другой модуль
#include "MainUnit.h"
extern TMyClass MyObject;
Любите книгу — источник знаний (с) М.Горький
Re[2]: Доступ к моему обьекту из другого юнита
От: mxl33  
Дата: 04.01.05 21:45
Оценка:
B>
B>//Другой модуль
B>#include "MainUnit.h"
B>extern TMyClass MyObject;
B>


Нифига... Та же самая байда...
[Linker Warning] Public symbol '_MyObject' defined in both module C:\{bla-bla-bla}\MAINUNIT.OBJ and C:\{bla-bla-bla}\OTHERUNIT.OBJ
Re[3]: Доступ к моему обьекту из другого юнита
От: running  
Дата: 04.01.05 22:35
Оценка:
Здравствуйте, mxl33, Вы писали:

M>Нифига... Та же самая байда...

M>
[Linker Warning] Public symbol '_MyObject' defined in both module C:\{bla-bla-bla}\MAINUNIT.OBJ and C:\{bla-bla-bla}\OTHERUNIT.OBJ


А ты случаем MyObject не в .h файле создаёшь? Так надо в cpp.
Re[3]: Доступ к моему обьекту из другого юнита
От: Bell Россия  
Дата: 05.01.05 07:55
Оценка:
Здравствуйте, mxl33, Вы писали:

B>>
B>>//Другой модуль
B>>#include "MainUnit.h"
B>>extern TMyClass MyObject;
B>>


M>Нифига... Та же самая байда...

M>
[Linker Warning] Public symbol '_MyObject' defined in both module C:\{bla-bla-bla}\MAINUNIT.OBJ and C:\{bla-bla-bla}\OTHERUNIT.OBJ


Очень похоже не то, что строка TMyClass MyObject; находится в MainUnit.h. Если это так, то ее нужно перенести в MainUnit.cpp.
Любите книгу — источник знаний (с) М.Горький
Re[4]: Доступ к моему обьекту из другого юнита
От: mxl33  
Дата: 26.01.05 19:20
Оценка:
Здравствуйте, Bell, Вы писали:
B>Очень похоже не то, что строка TMyClass MyObject; находится в MainUnit.h. Если это так, то ее нужно перенести в MainUnit.cpp.

В том-то и дело что находится оно в MainUnit.cpp в самом начале, сразу после инклудов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.