ورود

نسخه کامل مشاهده نسخه کامل : نوشتن EVENT



محمد علی جلالوندی
03-12-2009, 12:01
در محیطهای ویژوال EVENT هایی که برای یک کلاس نوشته می شوند وابسته به EVENT های استاندارد هستند چطور میشود رویدادی را نوشت که در طی اجرای برنامه مثلا با ارسال یک پالس بر روی یکی از پورتهای کامپیوتر اجرا شود.در سطح DOS این کار با وقفه -INTERRUPT- قابل انجام بود

sherwood
03-12-2009, 22:31
با سلام
نمیشه گفت در سطح dos در زبان های سطح پایین مثل اسمبلی میشه از وقفه ها یا interrupt استفاده کرد
ولی در زبان های سطح بالا بطور مستقیم نمیشه مثلا شما میتونید در c++ یا vc++ با دستور asm {} از دستورات
اسمبلی استفاده کنید ولی vb همچین خاصیتی نداره (تا اون جایی که من میدونم ) و برای فهمیدن دریافت پالس از درگاه های مختلف باید از کامبونت های خاص اون استفاده کنید که تو اینترنت فراوونه
امید وارم مفید بوده باشه

_H2_
03-12-2009, 23:29
سلام

در محیطهای ویژوال EVENT هایی که برای یک کلاس نوشته می شوند وابسته به EVENT های استاندارد هستند چطور میشود رویدادی را نوشت که در طی اجرای برنامه مثلا با ارسال یک پالس بر روی یکی از پورتهای کامپیوتر اجرا شود.در سطح DOS این کار با وقفه -INTERRUPT- قابل انجام بود

اصولاً سیستم عامل ویندوز اجازه این قبلی کارها را به هر زبانی نمیدهد حتی دستور زبان ماشین و اسمبلی OUT هم برای ارسال داده به یک پورت در WinXP به خطا خواهد خورد چه رسد به دستور نمونه شما که از یک وقفه سیستم عامل داس استفاده میکند و وابسته به سیستم عامل است.

ویندوز اصولاً وقفه Interrupt ندارد، سیستم عامل ویندوز برای ارائه بستر خدماتی بسیار بسیار وسیع و گسترده تر خود در انواع قابلیتها و موضوعات API دارد.

جای Interrupt های حفظی و عددی داس را API های داخل dll ها گرفته اندف هزاران API.
کافی است به System32 و تعداد dll ها نگاه کنید هر dll میتواند تعداد نامحدودی API داشته باشد.

(
البته زبانهای برنامه نویسی مختلف در این جهت کاربرانشان را یاری میکنند و تا حد امکان سعی میکنند برای کارهای مختلف خودشان به API های رنگارنگ ویندوز وصل شوند و بار را از دوش کاربر بر دارند تا کاربر با تک دستور ساده تری در زبان برنامه نویسی کارش حل شود
)

برای دسترسی به پورت COM-LPT-USB در ویندوز همانطور که دوستمان اشاره کردند میتوانید از dll ها و کامپونت های آماده استفاده کنید.