دردسرهای من و محیط ویژوال استودیو ...

حدود 2سال پیش بود که شروع به برنامه نویسی با سی شارپ کردم. طی این مدت چندین بار شده که محیط ویژوال استودیو (VS IDE) منو غافلگیر کرده که خنده دار هم به نظر میرسه(البته بعضی مواقع دردناک)، که امروز می خوام 2 نمونه از اتفاق ها را اینجا بنویسم:

  • موضوع از این قرار بود که باید یک کلاسی میساختم که توش یک فانکشن استاتیک میداشت. خوب طبق معمول من کلاس رو ساختم، اما به جای اینکه واژه static رو جلوی فانکشن بنویسم، اونو جلوی اسم کلاس نوشتم، به این صورت:static class foo و وقتی که به انتهای خط اومدم و اینتر روزدم که به خط بعد برم، بوم! کل ویژوال استودیو بسته شد :O. باز ویژوال استودیو رو باز کرم و برنامه رو Open کردم و دیدم کلاس سرجاشه و دوبازه static رو جلوش نوشتم و باز هم همون مسئله قبلی تکرار شد!

  • همین 2 هفته پیش بود که داشتم رو Interface یک پروژه کار میکردم. بعد از اینکه کارم تموم شد، پروژه رو ذخیره کردم و اجرا کردم اما هنوز هیچکدوم از تغییرات من اعمال نشده بود. اینجا بود که کل Solution رو Clean کردم و دوباره همه چی رو Build کردم. اما باز هم اتفاق خاصی نیفتاد. بعد از چند دفعه تکرار، به خودم گفتم که شاید اشکال از ویژوال استودیو باشه. برای همین ویژوال استودیو را بستم و دوباره باز کردم و وقتی که پروژه رو باز کردم، دیدم هیچکدوم از تغییراتم سر جاشون نیستن. یعنی پروژه به 2 ساعت پیش برگشته بود! (البته فکر کنم این رفتار VS به این خاطر بود که من از چند COM Object تو برنامم استفاده کردم.)

خطا در اجراي برنامه

چند وقت پيش که مي خواستم يک برنامه اي رو با سي شارپ بنويسم به يک خطا بر خوردم. قضيه از اين قرار بود که من بايد از يک COM در برنامه خودم استفاده مي کردم. و وقتي که شي مربوط به اون COM را روي فرمم قرار ميدادم و برنامه رو اجرا مي کردم با خطاي
Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
مواجه ميشدم. براي مثال اگر مي خواستم از فايل هاي فلش در برنامم استفاده کنم، با خطاي زير مواجه ميشدم.


خوب با اين خطا وقتي مواجه ميشدم که برنامم رو داشتم با Platform پيشفرض ويژوال استوديو يعني Any CPU اجرا مي کردم.
و چون ويندوز من Windows7 64-bit هست با خطا مواجه ميشدم چون ويژوال استوديو مي خواست برنامه من رو در پلتفرم 64 بيت اجرا کنه، در صورتي که من داشتم از COM 32bit در برنامم استفاده مي کردم.
حالا براي اجراي برنامه بايد Platform را به x86 تغيير ميدادم.

براي اطلاعات بيشتر درباره برنامه هاي 64 بيتي ميتونيد به آدرس زير مراجعه کنيد:
http://msdn.microsoft.com/en-us/library/ms241064.aspx

جستجو