|
|
|
переменную хочу
|
|||
|---|---|---|---|
|
#18+
извиняюсь глупый вопрос, но то ли со мной что-то не то, то ли ночь на дворе 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' Вообще такой способ мне не нравится. На ночь глядя ниче в голову другого не приходит. Таких переменных(и массивов) пруд пруди, и для каждой функцию, да переменную в обоих классах. Неправильно как-то. Мож другие есть? Через объявление дружественного класса чет не проходит. Не видит и все тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 00:10 |
|
||
|
переменную хочу
|
|||
|---|---|---|---|
|
#18+
--CGdocDoc::AAA(Name); а где сам реальный обьект ? в данном случае вызов по адресу 0000 - конечно валится будет. если статическая функция - то в нее надо ссылку на обьект передавать void CGdocDoc::AAA(CString & n, CGdocDoc &obj) { n=obj.m_string; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 01:06 |
|
||
|
переменную хочу
|
|||
|---|---|---|---|
|
#18+
Есть, функция GetDocument, создай простое MDI или SDI приложение, и посмотри как она там реализована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 02:26 |
|
||
|
переменную хочу
|
|||
|---|---|---|---|
|
#18+
Только что посмотрел, в 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="ой-ля-ля". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 02:38 |
|
||
|
переменную хочу
|
|||
|---|---|---|---|
|
#18+
2Дмитрий_AKB Есть, конечно есть GetDocument()! Даже строка уже была CGdocDoc* pDoc = GetDocument(); Это было первой попыткой. Но сбило вот что: набираю pDoc-> .. Жду. Вылезает доступным параметром Только интерфейс GIDoc. И ни одной функции и ни одной переменной. Вчера мне не показалось это странным, а повело по поиску иного пути. Сегодня вот думаю, толи глюк какой, толи так надо, а если надо , то неудобно. Что их всех наизусть помнить или лазить каждый раз в тело соседнего класса за названием переменных. Щас до работы дойду, поробую нагло указать pDoc->m_string. p/s/ Спасибо Дмитрий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 08:12 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2034509]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 315ms |

| 0 / 0 |
