PDA

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



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

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

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

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

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

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

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

Inprise
چهارشنبه 01 تیر 1384, 01: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 کپسوله شده است .

موفق باشید