PDA

View Full Version : اسمبلی برای ارسال داده به پورت در xp کار نمی کنند



xmazdak
شنبه 28 خرداد 1384, 10:00 صبح
سلام

قبلا دو بار سوال کردم و هر دو بار گفتند که سرچ بزن - بود اما با دستورات اسمبلی بود که این دستور (out) توی با ویندوز xp کار نمی کنه !

دستوراتی توی دلفی مستقیما برای ارسال داده به پورتها وجود دارد ؟

حسابی گیر کردم - کمک !

sunrise_db98
سه شنبه 31 خرداد 1384, 21:23 عصر
سلام
خوبید می توانید روی پوت کار کرد در XP مشکل دارد ولی قابل رفع هست اگر خواستید به من pm بدید

Delphi Skyline
چهارشنبه 01 تیر 1384, 00:27 صبح
نه با اسمبلی نمیشه . زیرا اینتراپت ها تو 32 بیتی جواب نمی ده .
اما شما می تونی از کامپاننت ها و DLL ها استفاده کنی .
برای اطلاعات بیشتـــــــــــر به من PM بزنید .
با تشکر . مهرداد .

vcldeveloper
چهارشنبه 01 تیر 1384, 01:37 صبح
آقایون، بجای درخواست PM، سعی کنید سوالات رو همین جا جواب بدید که فردا اگه یکی دیگه هم همین مشکل رو داشت، مجبور نشه براتون PM بزنه و بتونه راحت به جواب برسه.

Inprise
چهارشنبه 01 تیر 1384, 02:22 صبح
دستوراتی توی دلفی مستقیما برای ارسال داده به پورتها وجود دارد ؟

میتونی از API های : CreateFile و OpenFile و WriteFile و ... استفاده کنی ؛ برای جزئیات ، MSDN رو ببین . برای یک مثال :


HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);

به عنوان نام فایل ، برای اتصال به یک پورت COM باید فرضا" بنویسی : COM1//.////


HANDLE hCOM=CreateFile("\\\\.\\COM1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,

FILE_FLAG_OVERLAPPED,NULL);

اگر HANDLE مشکلی نداشت با استفاده از WriteFile و ReadFile مینویسی و میخونی ؛ قاعدتا" آخر کار از CloseFile برای آزاد کردن هندل استفاده میکنی . دو سال قبل دقیقا به همین سوال جواب دادم و کافیه فروم رو خوب بگردی تا پیداش کنی ؛ برای اغلب سوالات اوضاع دقیقا همینطوره .

برای مطالعه در مورد جزئیات پارامترهای توابع مذکور MSDN رو ببین .



زیرا اینتراپت ها تو 32 بیتی جواب نمی ده .
اما شما می تونی از کامپاننت ها و DLL ها استفاده کنی

درستش اینه که بگی ویندوز یک سیستم عامل Protected Mode سی و دو بیتی است و دسترسی مستقیم به سخت افزار از محیط کاربر یا UserLand امکان پذیر نیست و تمام کارائی سیستم توسط API کپسوله شده است .

موفق باشید