RE: C++ a COM porty 2.
Va Sm
SpiritusII@seznam.cz
Úterý Červenec 29 11:23:24 CEST 2008
Dekuji, spachal jsem program podle Vaseho doporuceni a zda se, ze i fugnuje.
Je potreba osetrit ukonceni vlakna po zavreni aplikace nebo je toto ruseno po zavreni okna?
> ------------ Původní zpráva ------------
> Od: Dusan Dolezal <duffa@inmail.cz>
> Předmět: RE: C++ a COM porty 2.
> Datum: 29.7.2008 07:58:40
> ----------------------------------------
> Vice threadu se opravdu nebojte, ono to mozna zni jako neco co je strasne
> slozite ale ve skutecnosti je samotne vytvoreni threadu primo primitivni.
> Samozrejme jina kapitola je synchronizace threadu ale to v nejake jednoduche
> aplikaci neni tak kriticke a asi nebudete muset thready synchronizovat
> vubec.
>
> Takze si vytvorite funkci kde se vlakno vude vykonavat:
>
> DWORD WINAPI FunkceVlakna(LPVOID lpvThreadParam)
> {
> //...
> //tady se neco bude delat
> //...
>
> return 0;
> }
>
> a pak se vlakno vytvori zavolanim
>
> CreateThread(NULL,0,FunkceVlakna,(LPVOID)NULL,0,NULL);
>
> Ten kod co je ve funkci 'FunkceVlakna' se vykona a vlakno se pak ukonci. Ve
> vasem pripade se vlakno hned nebude ukoncovat ale pobezi tam nejaka smycka,
> ktera bude cist z portu. Tim ze je to v samostatnem vlakne tak ciste
> teoreticky ani nepotrebujete otevirat ten port jako overlapped, ono za
> normalnich okolnosti pokud neni v bufferu znak tak program ceka na jeho
> prijem a tim vlastne zamrzne, u samostatneho vlakna to vlastne nevadi
> protoze program normalne reaguje, ceka jen to vlakno. Samozrejme ten
> overlapped mod ma spoustu vyhod a bude vhodnejsi, ale je taky o neco
> slozitejsi tak to pro zacatek muzete zkusit bez nej.
>
> Jinak tohle je opravdu jenom uplne to nejosekanejsi co se da udelat, ve
> skutecnosti je tema threadu a procesu na celou tlustou knizku (a taky o tom
> tluste knizky vychazeji) ale pro zacatek by vam tohle mohlo stacit na
> rozkoukani a postupne do toho proniknete. Na webu je plno prikladu (napr.
> vynikajici web je codeproject.com, tady je zrovna sample na seriovou
> komunikaci: http://www.codeproject.com/KB/system/chaiyasit_t.aspx), pripadne
> vysla i knizka v cestine primo se venujici programovani seriove komunikace
> pod Win, viz
> http://hw.cz/Teorie-a-praxe/Knihovnicka/ART854-Seriova-komunikace-ve-Win32.h
> tml
>
> Dusan Dolezal
>
> > -----Original Message-----
> > From: hw-list-bounces@list.hw.cz
> > [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Va_Sm
> > Sent: Monday, July 28, 2008 10:28 PM
> > To: HW-news
> > Subject: Re: C++ a COM porty 2.
> >
> > A nebyl by nekde k dispozici kompletnejsi kod? nevim presne jak
> > naprogramovat zalozeni noveho vlakna.....
> > Jaroslav Buchta napsal(a):
> > > Ano, pouziti extra vlakna na obsluhu COM portu sedi jak
> > pr... Na nocniku
> > > ;-)
> > > Dulezite je otevreni portu s priznakem
> > FILE_FLAG_OVERLAPPED, aby se dalo
> > > cekat na prijem funkci WaitComSingleObject
> > >
> > > CString csName;
> > > csName.Format ("\\\\.\\%s", m_csPortName);
> > >
> > > m_ComHandle = CreateFile(csName,GENERIC_READ | GENERIC_WRITE,
> > > 0,
> > > NULL,
> > > OPEN_EXISTING,
> > >
> > > FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, // overlapped I/O
> > > NULL);
> > > if (m_ComHandle == INVALID_HANDLE_VALUE) ERRSETSTATUS_RF
> > > (EC_OPNERR, m_csPortName);
> > >
> > >
> > > -----Original Message-----
> > > From: hw-list-bounces@list.hw.cz
> > [mailto:hw-list-bounces@list.hw.cz] On
> > > Behalf Of Va Sm
> > > Sent: Monday, July 28, 2008 2:38 PM
> > > To: hw-list@list.hw.cz
> > > Subject: C++ a COM porty 2.
> > >
> > >
> > > Dobry den,
> > > mohl by mi nekdo poskytnout funkcni kousek kodu v C++
> > vyuzivajici win
> > > api k pristupu na seriovy port? Nedavno jsem se ptal, zda existuje
> > > komponenta, ktera by tohle resila - jako Vacomm v Delphi -
> > podminkou je
> > > vyvovali udalsoti na prichozi znak. Bylo mi receno, ze je
> > to jednoduche
> > > prave pres win api. Skutecne to nevypada az tak slozite,
> > ale trapim se
> > > prave s prijmem znaku. Nedari se mi prave to vyvolani udalsoti s
> > > prichozim znakem. Je nutne takovou jednoduchou ulohu resit pouzitim
> > > vlaken?
> > >
> > > dekuji
> > > V. Smidl
> > > _______________________________________________
> > > HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
> > > http://list.hw.cz/mailman/listinfo/hw-list
> > >
> > > _______________________________________________
> > > HW-list mailing list - sponsored by www.HW.cz
> > > Hw-list@list.hw.cz
> > > http://list.hw.cz/mailman/listinfo/hw-list
> > >
> > > __________ Informace od NOD32 3301 (20080727) __________
> > >
> > > Tato zprava byla proverena antivirovym systemem NOD32.
> > > http://www.nod32.cz
> > >
> > >
> > >
> > >
> >
> > _______________________________________________
> > HW-list mailing list - sponsored by www.HW.cz
> > Hw-list@list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> >
> > __________ Informace od NOD32 3303 (20080728) __________
> >
> > Tato zprava byla proverena antivirovym systemem NOD32.
> > http://www.nod32.cz
> >
> >
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
Další informace o konferenci Hw-list