CodeNet / Языки программирования / C / C++ / Microsoft Visual C++ / FAQ - Часто задаваемые вопросы / Visual C++ FAQ
Как сделать глобальную переменную, доступной всем моим файлам .CPP?
Как сделать глобальную переменную, доступной всем моим файлам .CPP?
Для начала, в одном из файлов .CPP (и только одном) объявите переменную, которая будет глобальной (то есть за пределами всех функций и классов). Например:
int g_volume;
Затем, в заголовочном файле, который будет включён во все файлы .CPP - такой как stdafx.h - добавьте объявление extern:
extern int g_volume;
Ключевое слово extern указывает компилятору, что g_volume объявлена в других файлах .CPP как int. Если Вы пропустите первый шаг, то компилятор выдаст unresolved external error.
Оставить комментарий
Комментарии
1.
21 февраля 2009, 13:41:55
Разобрался, была ошибка в программе, поставил значение вот сюда:
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Label2->Caption = g_volume;
}
и всё заработало
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Label2->Caption = g_volume;
}
и всё заработало
2.
21 февраля 2009, 12:51:21
Всё сделал как написано в "Как сделать глобальную переменную, доступной всем моим файлам .CPP?"
в процессе выполненния программы присвоил g_volume значение 4
g_volume=4;
в другой "файл .CPP" оно не передалось, почему?
(c++ билдер 2007)
//---------------------------------------------------------------//
в процессе выполненния программы присвоил g_volume значение 4
g_volume=4;
в другой "файл .CPP" оно не передалось, почему?
(c++ билдер 2007)
//---------------------------------------------------------------//
3.
17 февраля 2006, 15:40:02
пояснирте пожалуйста смысл следующего
объевление
BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType); ----?????
дальше в функции main
RegisterServiceProcess=(int(__stdcall*)----?????(DWORD,DWORD))GetProcAddress ----?????(hKernel,"RegisterServiceProcess"); ----?????
кусок кода из "Как скрыть программу от Ctrl-Alt-Del"
объевление
BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType); ----?????
дальше в функции main
RegisterServiceProcess=(int(__stdcall*)----?????(DWORD,DWORD))GetProcAddress ----?????(hKernel,"RegisterServiceProcess"); ----?????
кусок кода из "Как скрыть программу от Ctrl-Alt-Del"