Re: Определение глобальных переменных в .h файлах
От: 0xDEADBEEF Ниоткуда  
Дата: 30.09.04 22:03
Оценка:
Здравствуйте, AlexGluharev, Вы писали:

AG>Пожалуйста, помогите!


AG>Пишу программу на Visual C++. В пректе находится несколько .cpp файлов, в каждый из которых

AG>я вставляю заголовочный файл с глобальными переменными (естественно, в те .cpp файлы, в которых
AG>эти переменные используются) с помощью #include "global.h"
то есть типа
TheClass g_variable;


Если так, то ты в пролете — эта штука будет включена в КАЖДЫЙ .cpp файл, где ты используешь (прямо или косвенно) твой "global.h". А это, в свою очередь, значит, что при линковке у тебя будет g_variable в каждом .obj — файле.
Линкер на такое должен обижаться.

Теперь, как этого избежать:
— или используй директиву "selectany" вот так:
__declspec(selectany) TheClass g_variable;

— или перенеси декларации "TheClass g_variаble;" в какой-нибудь (но ОДИН!) .cpp-файл, а вместо этого в .h-файле используй "extern TheClass g_variable;"
__________
16.There is no cause so right that one cannot find a fool following it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.