ДОКУМЕНТ-ОТОБРАЖЕНИЕ
в документе-представление
мне необходимо постоянно выводить на экран
несколько данных из последовательного порта
в документе у меня всё получается ,
данные получаю,делаю
setmodifiedflag(null)
updateallviews(null 0L null)
ВСЁ ЧТО НАДО ВЫВОЖУ НА ЭКРАН И, КАК Я ПОНИМАЮ,
ОКАЗЫВАЮСЬ В КЛАССЕ VIEW
ВЫВОД ПОЛУЧАЕИСЯ ОДИН РАЗ И ВСЁ
ПРИ ПОПЫТКЕ ВЕРНУТЬСЯ В ДОКУМЕНТ,КОГДА ЧИТАЕТСЯ ПОРТ УЖЕ ПОВТОРНО
МНЕ ОБЪЯВЛЯЕТ СИСТЕМА,ЧТО ПАМЯТЬ НЕ МОЖЕТ БЫТЬ WRITTEN,ТО ЖЕ МЕСТО ГДЕ ПРОГРАММА ПРОШЛАСЬ
В ДОКУМЕНТЕ 1 РАЗ ,ВТОРОЙ РАЗ НЕ ПРОХОДИТСЯ
КАК ЭТО ДЕЛАЕТСЯ,ТО ,ЧТО МНЕ НУЖНО?
Помогите новичку!
в документе-представление
мне необходимо постоянно выводить на экран
несколько данных из последовательного порта
в документе у меня всё получается ,
данные получаю,делаю
setmodifiedflag(null)
updateallviews(null 0L null)
ВСЁ ЧТО НАДО ВЫВОЖУ НА ЭКРАН И, КАК Я ПОНИМАЮ,
ОКАЗЫВАЮСЬ В КЛАССЕ VIEW
ВЫВОД ПОЛУЧАЕИСЯ ОДИН РАЗ И ВСЁ
ПРИ ПОПЫТКЕ ВЕРНУТЬСЯ В ДОКУМЕНТ,КОГДА ЧИТАЕТСЯ ПОРТ УЖЕ ПОВТОРНО
МНЕ ОБЪЯВЛЯЕТ СИСТЕМА,ЧТО ПАМЯТЬ НЕ МОЖЕТ БЫТЬ WRITTEN,ТО ЖЕ МЕСТО ГДЕ ПРОГРАММА ПРОШЛАСЬ
В ДОКУМЕНТЕ 1 РАЗ ,ВТОРОЙ РАЗ НЕ ПРОХОДИТСЯ
КАК ЭТО ДЕЛАЕТСЯ,ТО ,ЧТО МНЕ НУЖНО?
А поподробнее? Можно взглянуть на участки кода отвечающие за запись в mapped - файлы и и чтение из них?
PS Уважаемый OSEPIAN, если хотите, чтобы я постарался для вас и потратил своё время на ответ, будьте добры тоже постараться и задать грамотный вопрос. Или хотя бы соблюдайте синтаксис. Создаётся впечатление, что вы специально создаёте трудности людям, от которых ждёте помощи ;)
Кажется, вы напрасно пишете setmodifiedflag(null). Если речь идёт об MFC, то SetModifiedFlag(false) помечает документ не изменённым, что означает, что перерисовывать в нём нечего. Поэтому UpdateAllViews() ничего рисовать не станет.
PS Уважаемый OSEPIAN, если хотите, чтобы я постарался для вас и потратил своё время на ответ, будьте добры тоже постараться и задать грамотный вопрос. Или хотя бы соблюдайте синтаксис. Создаётся впечатление, что вы специально создаёте трудности людям, от которых ждёте помощи ;)
Извините за синтаксис,вот текст
док
void CMultiDoc::OnFileRs232()
{m_TextArray[0]="321321321321321";
MessageBeep(20);
SetModifiedFlag(TRUE );
// UpdateAllViews(NULL,OL,NULL);
вот представление:
void CMultiView::OnDraw(CDC* pDC)
{int nHeight;
TEXTMETRIC tm;
CMultiDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDC->GetTextMetrics(&tm);
nHeight=tm.tmHeight+tm.tmExternalLeading ;
pDoc->m_TextArray.GetSize();
pDC->TextOut(10,nHeight+10,pDoc->m_TextArray[0]);
/*pDC->TextOut(10,nHeight+50,pDoc->m_TextArray[1]);
pDC->TextOut(10,nHeight+90,pDoc->m_TextArray[2]);
pDC->TextOut(10,nHeight+130,pDoc->m_TextArray[3]);
pDC->TextOut(10,nHeight+170,pDoc->m_TextArray[4]);
pDC->TextOut(39,nHeight+210,pDoc->m_TextArray[5]);
pDC->TextOut(47,nHeight+250,pDoc->m_TextArray[6]);*/
// TODO: add draw code for native data here
}
Мне нобходимо получать данные из порта rs
и отправлять их на экран неограниченное время,
надо замкнуть цикл
один раз в примере это получается,
при возвращении (при моей неграмотной попытке
возвращения) программа останавливается
у меня ещё один вопрос,я получаю ту же диагностику в простейшем случае-для той же задачи
мне необходимо целое из rs232 превращать в строчки и это как-то не выходит;
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"
void main()
{char* b;
char* c;
int a=60000;
c=itoa(a,b,10);выскакивает диагностика о
памяти,которая не может быть written
cout<<(c);
// return 0;
}
я могу выйти из ситуации,покрутив биты,
как я это привык делать на микропроцессорах,
но надо же когда-то осваивать возможности С++,
есть ,я знаю,функция Format()eщЁ,что-то
С Уважением
Александр
[email]OSEPIAN@LIST.RU[/email]
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"
void main()
{char* b;
char* c;
int a=60000;
c=itoa(a,b,10)
;выскакивает диагностика о памяти,которая не может быть written
cout<<(c);
Для этого пиши так:
char buf[200];
int a=60000;
itoa(a,(char*)buf,10);
//buf содержит строку строку с необходимым значением
cout<<buf;