# Native Code > برنامه نویسی با C > برنامه نویسی با MFC و ++Visual C >  کار با پورت سریال در visual C++‎ 2008

## amintlk

با سلام .. برای کار با پورت سریال یا همون rs232 چیکار باید کرد؟؟

----------


## ASGGSA

سلام.
سوالتون تکراری است. بهتر قبل از پرسیدن جستوجو کنید. توسط دوستان پیوندهای زیر معرفی شده اند.
http://electrosofts.com/serial/
http://www.ontrak.net/c.htm

----------


## amintlk

من تاپیک های قبلی رو دیدم ولی تو ی هیچ کدوم کامل توضیح داده نشده و همش ارجاع داده شده به یک سری لینک خارجی که اون ها هم در ویژوال 2008 کار نمی کنه!! نمونش لینک های معرفی شده توسط خودتون ...

----------


## ASGGSA

سلام.
برای باز کردن پورت سریال :

HANDLE hSerial;
hSerial = CreateFile((CString)"COM1",GENERIC_READ | GENERIC_WRITE,0,0,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

برای بستن پورت :

CloseHandle(hSerial);

برای خواندن از پورت :

char szBuff[size + 1] = {0};
DWORD dwBytesRead = 0;
ReadFile(hSerial,szBuff,size,&dwBytesRead, NULL);

برای نوشتن در پورت :

WriteFile(hSerial,szBuff,size,&dwBytesRead,NULL);

برای اطلاعات بیشتر درباره این توابع ، خطاها و توابع مربوطه دیگر به MSDN مراجعه کنید.

----------


## زینب حسینی

سلام
2تا سوال داشتم
1- آیا برای توابع خواندن ونوشتن در پورت سریال توست ویژوال c نیاز به کتابخانه خاصی هست؟
2- من مثلا می خوام DF رو در پورت سریال بنویسم چگونه باید از دستور زیر استفاده کنم؟
WriteFile(hSerial,szBuff,size,&dwBytesRead,NULL);l
با تشکر

----------


## #target

همون windows.h رو Include کنید 
تابع WriteFile پنج تا پارامتر داره به این صورت 
پارامتر اول هندل به فایلی که تابع CreateFile ایجاد کرده . پارامتر دوم اشاره گر به جایی که اطلاعات در آن قرار دارد (اطلاعاتی که میخواهید بنویسید) . پارامتر سوم تعداد بایت هایی که میخواهید بنویسید (معمولا برابر با سایز بافر که در پارامتر قبلی مشخص کردید ) . پارامتر چهارم اشاره گر به ی مقدار DWORD که تابع بعد از اتمام کار تعداد بایتهایی که نوشته قرار میده اونجا . پارامتر پنجم هم NULL گذاشته شده ( این پارامتر در صورتی که بخواهید استفاده کنید اشاره گر به ساختار OVERLAPPED هست . که در این نوشتن نیاز نیست NULL میذاری )

----------


## زینب حسینی

من برای گرفتن عکس باید دستور DF را باید به پورت سریال ارسال کنم آخر نفهمیدم دستور DF رو بجای کدوم پارامتر قرار بدم و
من اطلاعات رم می خوام در پورت سریال بنویسم به جای szbuff چی قرار بدم؟
ممنون

----------


## #target

اشاره به داده ای که قراره نوشته بشه در szbuf قرار بگیره

----------

