powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Снова о глобальных переменных
16 сообщений из 41, страница 2 из 2
Снова о глобальных переменных
    #34848792
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuazarЕсть подкаталог программы \Debug_Build, в котором лежат OBJ-файлы форм, а GlobalData.obj нет.

В проект точно добавил?
При ребилде компилится (есть строчка, что он компилится)?
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848797
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А когда GlobalData.cpp компилишь, на что ругается?
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848805
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HryuckinnenА когда GlobalData.cpp компилишь, на что ругается?

Ни фига себе! В билдере идет линковка, когда что-то не скомпилилось?
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848826
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Ни фига себе! В билдере идет линковка, когда что-то не скомпилилось?
Бывает:)
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848845
Quazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удалил из проекта, добавил снова, теперь вот какие новости...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[C++ Error] GlobalData.h(4): E2141 Declaration syntax error
[C++ Error] GlobalData.h(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(5): E2141 Declaration syntax error
[C++ Error] GlobalData.h(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(6): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(4): E2304 Constant variable 'AnsiString' must be initialized
[C++ Error] GlobalData.cpp(4): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(6): E2141 Declaration syntax error
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848884
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuazarУдалил из проекта, добавил снова, теперь вот какие новости...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[C++ Error] GlobalData.h(4): E2141 Declaration syntax error
[C++ Error] GlobalData.h(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(5): E2141 Declaration syntax error
[C++ Error] GlobalData.h(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(6): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(4): E2304 Constant variable 'AnsiString' must be initialized
[C++ Error] GlobalData.cpp(4): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(6): E2141 Declaration syntax error


AnsiString точно подрублен?
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848895
Quazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848900
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub QuazarУдалил из проекта, добавил снова, теперь вот какие новости...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[C++ Error] GlobalData.h(4): E2141 Declaration syntax error
[C++ Error] GlobalData.h(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(5): E2141 Declaration syntax error
[C++ Error] GlobalData.h(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.h(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.h(6): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(4): E2304 Constant variable 'AnsiString' must be initialized
[C++ Error] GlobalData.cpp(4): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(5): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(4): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2141 Declaration syntax error
[C++ Error] GlobalData.cpp(6): E2238 Multiple declaration for 'AnsiString'
[C++ Error] GlobalData.cpp(5): E2344 Earlier declaration of 'AnsiString'
[C++ Error] GlobalData.cpp(6): E2141 Declaration syntax error


AnsiString точно подрублен?

Ага, причем ДВАЖДЫ
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34848915
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#include <Classes.hpp> в начале GlobalData.h
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34850495
Это баг билдера. Сам на него напарывался.

У меня было так:
в H файле описание шаблонного класса, когда включал его более чем в 2 H файла - получал такую ошибку.
ни #ifndef _FILE_H, ни @pragma once - ничего не помогало. Забил, т.к. от глючного билдера ничего другого и не ожидал (сам пишу на MSVC)
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34861264
Фотография quaid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HryuckinnenОбалдели штоль. Нельзя в h-файлах инициализировать переменные.
Можно. Только тогда придется компилировать без precompiled headers (будет медленнее).
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34861274
Фотография quaid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"

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

Народ, не давайте советов, как сделать "автогеном через задницу".

Вот простой и правильный подход:

в GlobalData.cpp:
const AnsiSting APPLICATION_ID = "46";

в GlobalData.h:
extern AnsiString APPLICATION_ID;

Во все модули, где нужна эта глобальная переменная, надо включить
#include "GlobalData.h"
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34861282
Фотография quaid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quaid 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"

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

Народ, не давайте советов, как сделать "автогеном через задницу".

Вот простой и правильный подход:

в GlobalData.cpp:
const AnsiString APPLICATION_ID = "46";

в GlobalData.h:
extern AnsiString APPLICATION_ID;

Во все модули, где нужна эта глобальная переменная, надо включить
#include "GlobalData.h"

Естественно, GlobalData.cpp нужно подключить к проекту.
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34861853
Quazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, я так и сделал :)
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34861894
Quazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот что получил :)
Код: plaintext
1.
[C++ Error] GlobalData.cpp(10): E2238 Multiple declaration for 'APPLICATION_ID'
[C++ Error] GlobalData.h(6): E2344 Earlier declaration of 'APPLICATION_ID'
...
Рейтинг: 0 / 0
Снова о глобальных переменных
    #34862231
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
const забыл в h
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Снова о глобальных переменных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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