Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Снова о глобальных переменных / 25 сообщений из 41, страница 1 из 2
05.10.2007, 08:34:09
    #34848423
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Есть модуль
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
// GlobalData.h
#ifndef GlobalData
#define GlobalData
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern const AnsiString APPLICATION_ID = "46"; //Код приложения 
extern AnsiString COMPANY_ID;          //Код компании
extern AnsiString USER_NAME;           //Сетевое имя пользователя
#endif

В заголовочном файте главной формы приложения указано
Код: plaintext
#include "GlobalData.h"

В других модулях я эти переменные не вижу, а если добавляю такую же строку в заголовочный файл, возникает варнинг множественного объявления переменных. Не понял до конца как в билдере использовать глобальные переменные.
...
Рейтинг: 0 / 0
05.10.2007, 08:43:45
    #34848439
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
почему просто не сделать так?

#define APPLICATION_ID "46"

--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
05.10.2007, 08:47:40
    #34848448
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Заведи себе GlobalData.cpp и там их ининциализируй
...
Рейтинг: 0 / 0
05.10.2007, 09:01:22
    #34848471
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Cerebrumпочему просто не сделать так?

#define APPLICATION_ID "46"

--------------------------------------------------------------
[не претендую на уникальность]

насколько я понял из литературы, так не рекомендуется делать.

Поменял расширение на CPP.
Код: plaintext
Если #include "GlobalData.cpp"
не указываю, все равно не вижу переменные, если указываю, то
Код: plaintext
[Linker Fatal Error] Fatal: Unable to open file 'GLOBALDATA.OBJ'
...
Рейтинг: 0 / 0
05.10.2007, 09:19:13
    #34848500
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Quazarв *.h файле только определения extern ....
в *.cpp - собственно объявление и инициализация
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.10.2007, 09:39:32
    #34848533
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
QuazarЕсть модуль
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
// GlobalData.h
#ifndef GlobalData
#define GlobalData
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern const AnsiString APPLICATION_ID = "46"; //Код приложения 
extern AnsiString COMPANY_ID;          //Код компании
extern AnsiString USER_NAME;           //Сетевое имя пользователя
#endif

В заголовочном файте главной формы приложения указано
Код: plaintext
#include "GlobalData.h"

В других модулях я эти переменные не вижу, а если добавляю такую же строку в заголовочный файл, возникает варнинг множественного объявления переменных. Не понял до конца как в билдере использовать глобальные переменные.

Полтергейст. Покажи еще хотябы варнинг.
...
Рейтинг: 0 / 0
05.10.2007, 09:39:54
    #34848534
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Cerebrumпочему просто не сделать так?

#define APPLICATION_ID "46"

--------------------------------------------------------------
[не претендую на уникальность]

Макросы - зло ;)
...
Рейтинг: 0 / 0
05.10.2007, 09:40:18
    #34848536
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Quazar Cerebrumпочему просто не сделать так?

#define APPLICATION_ID "46"

--------------------------------------------------------------
[не претендую на уникальность]

насколько я понял из литературы, так не рекомендуется делать.

Поменял расширение на CPP.
Код: plaintext
Если #include "GlobalData.cpp"
не указываю, все равно не вижу переменные, если указываю, то
Код: plaintext
[Linker Fatal Error] Fatal: Unable to open file 'GLOBALDATA.OBJ'


Включи файл в проект.
...
Рейтинг: 0 / 0
05.10.2007, 10:07:52
    #34848628
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Карабас Барабас Quazarв *.h файле только определения extern ....
в *.cpp - собственно объявление и инициализация
Posted via ActualForum NNTP Server 1.4

Сделал, не помогает (((((((((
...
Рейтинг: 0 / 0
05.10.2007, 10:08:41
    #34848632
Stub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
QuazarЕсть модуль
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
// GlobalData.h
#ifndef GlobalData
#define GlobalData
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern const AnsiString APPLICATION_ID = "46"; //Код приложения 
extern AnsiString COMPANY_ID;          //Код компании
extern AnsiString USER_NAME;           //Сетевое имя пользователя
#endif

В заголовочном файте главной формы приложения указано
Код: plaintext
#include "GlobalData.h"

В других модулях я эти переменные не вижу, а если добавляю такую же строку в заголовочный файл, возникает варнинг множественного объявления переменных. Не понял до конца как в билдере использовать глобальные переменные.

Какие ошибки выдает? В них ответ.
...
Рейтинг: 0 / 0
05.10.2007, 10:09:13
    #34848637
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Ошибку на обзрение, pls
...
Рейтинг: 0 / 0
05.10.2007, 10:09:33
    #34848638
Hryuckinnen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Обалдели штоль. Нельзя в h-файлах инициализировать переменные. Верни расширение h как было, инициализацию выкинь, заведи еще один файлик GlobalData.cpp и туда напиши:
Код: plaintext
1.
2.
3.
4.
#include "GlobalData.h"
const AnsiString APPLICATION_ID = "46"; //Код приложения 
AnsiString COMPANY_ID;          //Код компании
AnsiString USER_NAME;           //Сетевое имя пользователя
И в проект его включи.
...
Рейтинг: 0 / 0
05.10.2007, 10:09:51
    #34848640
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Все та же вышеуказанная ошибка, файлы в проект добавлены.
...
Рейтинг: 0 / 0
05.10.2007, 10:14:18
    #34848657
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// GlobalData.h
#ifndef GlobalData
#define GlobalData
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern APPLICATION_ID ;  //Код приложения в таблице Applicathion
extern COMPANY_ID;          //Код компании
extern USER_NAME;           //Сетевое имя пользователя
#endif

//GlobalData.cpp
##include "GlobalData.h"
const AnsiString APPLICATION_ID = "46"; 
AnsiString COMPANY_ID;         
AnsiString USER_NAME;           
...
Рейтинг: 0 / 0
05.10.2007, 10:17:38
    #34848672
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Вернее #include с одной решеткой конечно же
...
Рейтинг: 0 / 0
05.10.2007, 10:17:52
    #34848674
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
QuazarВсе та же вышеуказанная ошибка, файлы в проект добавлены.

Уже 3 человека попросило скопипастить ошибку...
...
Рейтинг: 0 / 0
05.10.2007, 10:19:06
    #34848679
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Код: plaintext
[Linker Fatal Error] Fatal: Unable to open file 'GLOBALDATA.OBJ'
...
Рейтинг: 0 / 0
05.10.2007, 10:22:01
    #34848698
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Quazar
Код: plaintext
[Linker Fatal Error] Fatal: Unable to open file 'GLOBALDATA.OBJ'


Алл Ребилд попробуй. Или что там в борланде...
...
Рейтинг: 0 / 0
05.10.2007, 10:22:44
    #34848704
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Akh Quazar
Код: plaintext
[Linker Fatal Error] Fatal: Unable to open file 'GLOBALDATA.OBJ'


Алл Ребилд попробуй. Или что там в борланде...

его и делаю
...
Рейтинг: 0 / 0
05.10.2007, 10:25:14
    #34848715
Hryuckinnen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// GlobalData.h
#ifndef __GlobalData__
#define __GlobalData__
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern const AnsiString APPLICATION_ID ;  //Код приложения в таблице Applicathion
extern AnsiString COMPANY_ID;          //Код компании
extern AnsiString USER_NAME;           //Сетевое имя пользователя
#endif

Код: plaintext
1.
2.
3.
4.
5.
//GlobalData.cpp
#include "GlobalData.h"
const AnsiString APPLICATION_ID = "46"; 
AnsiString COMPANY_ID;         
AnsiString USER_NAME;

И GlobalData.cpp попробуй отдельно скомпилить.
...
Рейтинг: 0 / 0
05.10.2007, 10:27:59
    #34848728
warIord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
namespaces вроде еще никто не отменял
...
Рейтинг: 0 / 0
05.10.2007, 10:28:29
    #34848733
+2
+2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
AkhАлл Ребилд попробуй. Или что там в борланде...
Не знаю как в борланде, но в свойствах проекта может быть указано, что этот файл не надо компилировать (по крайней мере, в MS VS 2005 / 2008) - вот и не компилится.
...
Рейтинг: 0 / 0
05.10.2007, 10:30:18
    #34848742
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Quazar
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// GlobalData.h
#ifndef GlobalData
#define GlobalData
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern APPLICATION_ID ;  //Код приложения в таблице Applicathion <-- warning int assumed
extern COMPANY_ID;          //Код компании <-- warning int assumed
extern USER_NAME;           //Сетевое имя пользователя<-- warning int assumed
#endif

//GlobalData.cpp
##include "GlobalData.h"
const AnsiString APPLICATION_ID = "46"; //<-- error name was previously defined as int
AnsiString COMPANY_ID;         // <--error name was previously defined as int,not initialized
AnsiString USER_NAME;           // <--error name was previously defined as int,not initialized

Выключи комп и пойди читать книжку тут багов как гарбузе семян
...
Рейтинг: 0 / 0
05.10.2007, 10:40:39
    #34848778
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Hryuckinnen
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// GlobalData.h
#ifndef __GlobalData__
#define __GlobalData__
//--------------------- ГЛОБАЛЬНЫЕ ДАННЫЕ ПРИЛОЖЕНИЯ ---------------------
extern const AnsiString APPLICATION_ID ;  //Код приложения в таблице Applicathion
extern AnsiString COMPANY_ID;          //Код компании
extern AnsiString USER_NAME;           //Сетевое имя пользователя
#endif

Код: plaintext
1.
2.
3.
4.
5.
//GlobalData.cpp
#include "GlobalData.h"
const AnsiString APPLICATION_ID = "46"; 
AnsiString COMPANY_ID;         
AnsiString USER_NAME;

И GlobalData.cpp попробуй отдельно скомпилить.
Сделал... все болит, ниче не помогает
...
Рейтинг: 0 / 0
05.10.2007, 10:43:14
    #34848785
Quazar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о глобальных переменных
Есть подкаталог программы \Debug_Build, в котором лежат OBJ-файлы форм, а GlobalData.obj нет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Снова о глобальных переменных / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]