بایگانی برچسب‌ها: خط فرمان

FTH و Win7!

در حال دباگ‌کردن(debugging) تک‌میکر دوجهته بر روی ویندوز ۷ بودم که متوجه اشکالی شدم که باعث بسته شدن تک‌میکر می‌شد(به قول معروف crash کرد) قسمتی از کد را که فکر می‌کردم باعث خطا شده داخل کامنت قرار دادم، مشکل crash کردن حل شد، اما دیدم در خروجی کنسول برنامه موقع اجرای برنامه پیغامی بصورت زیر ایجاد می‌شد:

FTH: (1004): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***

با چند بار اجرای برنامه تعجب کردم که بدون اینکه خطا و crashی ایجاد بشه این پیغام نمایش داده میشه و میگه: «معمولا بعلت crash قبلی این اتفاق رخ میده!»
تنها راه جستجو در اینترنت بود که خوشبختانه به جواب رسید:
در واقع FTH یا همون «Fault Tolerant Heap» سرویسی برای ویندوز ۷ هست که هنگ کردن و crashهای نرم‌افزارها رو تحت‌نظر داره و سعی می‌کنه بصورت خودکار از بروز crashهای آینده برای نرم‌افزارهایی که دچار خطا شدن جلوگیری کنه!
ادامه‌ی خواندن

از بلاگر: گرفتن خروجی Console در نرم‌افزارهای با رابط گرافیکی در ویندوز

انتقال از بلاگر، ارسال در جمعه ۱۷ سپتامبر ۲۰۱۰ ساعت ۱:۱۱
چند روز پیش متوجه شدم کدی شبیه به:

printf(“Hello!”);

یا:

std::cout<< “Hello!”;

که در نرم‌افزاری با رابط گرافیکی «Gui Application» به کار رفته بود خروجی مورد انتظار را وقتی نرم‌افزار در خط فرمان اجرا می‌شود ایجاد نمی‌کند، خیلی عجیب بود! از آنجا که قبلا این نرم‌افزار را در لینوکس استفاده کرده بودم و چنین اشکالی را در آنجا ندیده بودم کاملا مطمئن بودم هر چه هست مربوط به ویندوز است، از آنجا که این نرم‌افزار بر روی سکوی Qt نوشته شده بود رفتم به دنبال راه‌حلی در دنیای Qt و بعد از کمی جستجو به سرعت ادامه‌ی خواندن

از بلاگر: ایجاد تاخیر در اجرای دستور بعدی

انتقال از بلاگر، ارسال در پنجشنبه ۹ سپتامبر ۲۰۱۰ ساعت ۰:۴۰

بارها پیش آمده که در نوشتن Batch فایل‌های مختلف می‌خواستم بین اجرای دو دستور تاخیر بیاندازم اما در ویندوزهای امروزی دستور SLEEP وجود ندارد و دستور جایگزینی هم برای آن نمی‌شناختم، از طرفی جستجوی Google هم نتیجه‌ای که مورد نظرم باشد در پی نداشت! تا اینکه چند روز پیش در وبلاگی به طرح دوباره این مشکل برخوردم، این دفعه با عزمی جزم‌تر در Google به دنبال راه‌حل گشتم که خوشبختانه این دفعه نتیجه گرفتم، در زیر می‌توانید این دستور و نحوه کار آن را ببینید:

TIMEOUT <delay>

که مقدار <delay> عددی برحسب ثانیه و قابل تغییر از ۰ تا ۱۰۰۰۰۰ است. مقدار ‎-۱‎ موجب تاخیر بی‌نهایت خواهد شد، به عبارت دیگر TIMEOUT -۱ معادل با دستور PAUSE است.
دقت کنید که در هنگام اجرای این دستور اگر کاربر کلیدی را بزند بلافاصله دستور بعدی اجرا خواهد شد.