S
Sermak
Помогите с такой проблемой - в моем проекте (C++Builder 6) есть несколько модулей. И у меня по непонятной мне причине не возможно получить доступ в модуле к переменной, объявленной в другом модуле. Структура примерно следующая :
Почему нет доступа к внешнему объекту? Конструкторы по умолчанию есть у всех классов
Может что то в настройках есть, или это компилятор глючит.
Какие могут вообще быть притчины?
Спасибо за внимание.
Код:
////////////File1.h/////////////////////
struct Ini
{
int data;
Ini () {/*инициализация*/}
};
//--------------------------
class Main
{
public:
Ini Ini_data;
Main () {/*инициализация*/}
};
Main *pMainGlobalObject; // его мы корректно создаем (инициализируем)
// в этом же файле (точнее в .cpp файле)
....
///////////File2.h/////////////////////////
#ifndef File2H
#define File2H
#include "File1.h"
//---------------------------
class UserMain
{
public:
void AccessMain ();
};
#endif
//////////////////////////////////////////////////////////////////////////////////////
/////////////File2.cpp//////////////////////////////
#pragma hdrstop
#include "File2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
// верхние четыре строки писал Builder
extern Main *pMainGlobalObject;
void UserMain::
AccessMain ()
{
// ShowMessage(MainGlobalObject->Ini_data.data); // ошибка выполнения
/*Project MainPro.exe raised exception class EAccessViolation with
at adress такой то in module MainPro.exe. Read of address и тд*/
if (MainGlobalObject == 0) return; // здесь пройсходит выход
// почему то pMainGlobalObject не инициализирован
}
Может что то в настройках есть, или это компилятор глючит.
Какие могут вообще быть притчины?
Спасибо за внимание.