powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / переменную хочу
6 сообщений из 6, страница 1 из 1
переменную хочу
    #32662096
Vss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vss
Гость
извиняюсь глупый вопрос, но то ли со мной что-то не то, то ли ночь на дворе
MFC
В классе CGdocDoc есть переменная Public: CString m_string
Хочу достучаться до нее из другого класса CGdocView
Пытаюсь так:
Определяю функцию в CGdocDoc
public:
static void AAA(CString& n);

void CGdocDoc::AAA(CString & n)
{
//TODO: return statement
n=m_string; (если тут ="valuetemp" то все ок, как только переменная валится)
}
CGdocView:
public:
CString Name;

Вызов из CGdocView:
CGdocDoc::AAA(Name);
pDC->TextOut(0,0,Name);
Валится с error C2440: '=' : cannot convert from '' to 'CString'
Вообще такой способ мне не нравится. На ночь глядя ниче в голову другого не приходит. Таких переменных(и массивов) пруд пруди, и для каждой функцию, да переменную в обоих классах. Неправильно как-то. Мож другие есть? Через объявление дружественного класса чет не проходит. Не видит и все тут.
...
Рейтинг: 0 / 0
переменную хочу
    #32662119
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--CGdocDoc::AAA(Name);

а где сам реальный обьект ?
в данном случае вызов по адресу 0000 - конечно валится будет.
если статическая функция - то в нее надо ссылку на обьект передавать

void CGdocDoc::AAA(CString & n, CGdocDoc &obj)
{
n=obj.m_string;
}
...
Рейтинг: 0 / 0
переменную хочу
    #32662128
Дмитрий_AKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть, функция GetDocument, создай простое MDI или SDI приложение, и посмотри как она там реализована.
...
Рейтинг: 0 / 0
переменную хочу
    #32662129
Дмитрий_AKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только что посмотрел, в View есть вертуальная функция GetDocument().
Мой пример :
CDimaDoc* CDimaView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDimaDoc)));
return (CDimaDoc*)m_pDocument;
}
И влебой фенкции представления пишишь :
CDimaDoc* m_doc = GetDocument();
А потом обращайся к любой переменной документа :
m_doc->m_string="ой-ля-ля".
...
Рейтинг: 0 / 0
переменную хочу
    #32662208
Vss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vss
Гость
2Дмитрий_AKB
Есть, конечно есть GetDocument()! Даже строка уже была
CGdocDoc* pDoc = GetDocument(); Это было первой попыткой.
Но сбило вот что: набираю pDoc-> .. Жду. Вылезает доступным параметром Только интерфейс GIDoc. И ни одной функции и ни одной переменной. Вчера мне не показалось это странным, а повело по поиску иного пути. Сегодня вот думаю, толи глюк какой, толи так надо, а если надо , то неудобно. Что их всех наизусть помнить или лазить каждый раз в тело соседнего класса за названием переменных. Щас до работы дойду, поробую нагло указать pDoc->m_string.
p/s/ Спасибо Дмитрий
...
Рейтинг: 0 / 0
переменную хочу
    #32662370
Дмитрий_AKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" Вылезает доступным параметром Только интерфейс GIDoc. И ни одной функции и ни одной переменной", А это унего глюк такой, не раз уж был.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / переменную хочу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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