c++ ile seri port controlü bu kadar basitmi elbette hayır gelin bunu şimdi birde bereber yapalım c++ builder’ı çalıştırın ve formun (unit1.h public) komut satırına aşağıdaki kodları yazın DCB Bcomm; peki bu nedir DCB burada bir sınıf ve bu sınftan türetilen Bcomm nesnesi bu nesne DCB sınıfının üyelerine erişebilir. HANDLE Bhcomm; bu komut pencere yöneticisi olarak görev yapar biz bununla vindows apisi olan filecreate apisinden yararlanıcagız bool B_commopen; bu komut ile seriportun durumunu konrol edecegiz Şimdi yeni bir form oluşturun ve bu formun unit başlığına Unit1.h ifadesini koymayı unutmayın. Form1’in üzerine 1 buton yerleştirin ve onclick olayına Form2->Show(); komutunu yazın Form2’ye geçin üzerine 3 Ade buton yerleştirin ve iki adet ise ComboBox Yerleştirin; ComboBox1’in Items olayına alt alta COM1 COM2 .... COM8’E KADAR YAZIN ComboBox2’nin ıtems olayına alt alta 110 300 600 1200 2400 4800 9600 14400 19200 38400 56000 57600 115200 128000 256000 yazın; Şimdi Button1’in Caption’a Connect yazın Button2’nin captiona Disconnect yazın Button3’e ise cancel yazın; umarım buraya kadar pureblem yoktur; Şimdi Form2’nin unit2.h kısmını açın ve aşağıdaki fonksiyonu __published kısmına yazın void __fastcall opencomm(TObject *Sender); ve unit2.cpp kısmına geçin ve aşağıdaki kodları yazın; //----------------------------------------------------- void __fastcall TForm2::opencomm(TObject *Sender) { if(Form1->B_commopen){ return; } Form1->Bcomm.DCBlength=sizeof(DCB); Form1->Bcomm.BaudRate=(unsigned long)(ComboBox2->Text.c_str()); Form1->Bhcomm = CreateFile(ComboBox1->Text.c_str(), GENERIC_READ | GENERIC_WRITE, 0, /* comm devices must be opened w/exclusive-access */ NULL, /* no security attrs */ OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */ 0, /* not overlapped I/O */ NULL /* hTemplate must be NULL for comm devices */ ); Form1->B_commopen=true; if(!Form1->B_commopen){ ShowMessage("Port açılmadı"); return; } } şimdi button1’e basın ve Events onclick olayından opencomm’u seçin Şimdi Form2’nin unit2.h kısmını açın ve aşağıdaki fonksiyonu __published kısmına yazın void __fastcall closecomm(TObject *Sender); ve unit2.cpp kısmına geçin ve aşağıdaki kodları yazın; //-------------------------------------------------------------------------- void __fastcall TForm2::closecomm(TObject *Sender) { int x; if(!Form1->B_commopen) return; if(CloseHandle(Form1->Bhcomm)!= 0) { Form1->B_commopen = false; clear_statusbar(); } else{ try{ throw x; } catch(int x){ ShowMessage("Port not close"); } } } //------------------------------------------------------------------------Şimdi programı çalıştırın ve Com2’yi seçin ve 9600 secip connect butonuna basın eğer elinizde bir seri port conrolü ile çalışan program var ise sonucu görebilirsiniz;