ورود

View Full Version : حرفه ای: رجیستر کردن ocx در هنگام نصب برنامه برای اجرا در همه کامپیوترها



sajad_boj70
یک شنبه 10 بهمن 1389, 12:13 عصر
با سلام خدمت همه دوستان.
من یک برنامه نوشتم که توش از چند تا ocx استفاده کردم
حالا وقتی برای برنامه یک setup درست میکنم و اون رو تو یک سیستم دیگه نصب میکنم و اجرا میکنم به ocx ها گیر میده
البته اون سیستمی که توش این برنامه رو نصب کردم ویندوزش 7 هست
خطایی هم که میده اینه

65716

لطفا راهنماییم کنید

http://barnamenevis.org/images/misc/pencil.png

mehdi.mousavi
یک شنبه 10 بهمن 1389, 12:21 عصر
با سلام خدمت همه دوستان. من یک برنامه نوشتم که توش از چند تا ocx استفاده کردم حالا وقتی برای برنامه یک setup درست میکنم و اون رو تو یک سیستم دیگه نصب میکنم و اجرا میکنم به ocx ها گیر میده البته اون سیستمی که توش این برنامه رو نصب کردم ویندوزش 7 هست خطایی هم که میده اینه

سلام.
ابتدا با استفاده از Dependency Walker (http://www.dependencywalker.com/) مطمئن بشید که کلیه فایلهای مورد نیاز اون OCX در مسیرهای مورد نظر وجود داره. سپس، بصورت دستی و از طریق Administrative Command Prompt (یعنی Command Prompt ای که با استفاده از گزینه Run as administrator باز شده) بصورت دستی اقدام به Register کردن اون OCX کنید و ببینید آیا مشکل رفع میشه یا خیر. اگر رفع بشه، نشون میده ایراد از برنامه نصاب شماست، اگر رفع نشه، قاعدتا فایل مزبور Dependency هایی داره که در سیستم هدف وجود نداره.

موفق باشید.

sajad_boj70
یک شنبه 10 بهمن 1389, 14:26 عصر
سلام.
خیلی خوشحال شدم که شما مدیر سایت شخصا جوابم رو دادید.
اما در باب پاسخی که دادید ، میشه بیشتر توضیح بدید.
من اصلا متوجه نشدم باید چیکار کنم.
من دوباره مشکلم رو مطرح میکنم
ببینید فرض کنید ما یک نرم افزار با ویژوال بیسیک نوشتیم که توش از یک ocx استفاده کردیم. حالا اگه بخوایم این نرم افزار رو تو یک سیستم دیگه اجرا کنیم خطا میده(که عکسش رو هم براتون گذاشتم)

mehdi.mousavi
یک شنبه 10 بهمن 1389, 15:28 عصر
سلام. خیلی خوشحال شدم که شما مدیر سایت شخصا جوابم رو دادید.

سلام.
خوشحال برای چی؟ تا وقتی مشکلتون حل نشده خوشحالی نکنید :چشمک:


اما در باب پاسخی که دادید ، میشه بیشتر توضیح بدید. من اصلا متوجه نشدم باید چیکار کنم. من دوباره مشکلم رو مطرح میکنم ببینید فرض کنید ما یک نرم افزار با ویژوال بیسیک نوشتیم که توش از یک ocx استفاده کردیم. حالا اگه بخوایم این نرم افزار رو تو یک سیستم دیگه اجرا کنیم خطا میده(که عکسش رو هم براتون گذاشتم)

بسیار خوب. ابتدا برنامه Dependency Walker رو دریافت و اجرا کنید. سپس فایل OCX خودتون رو در اون باز کنید و بررسی کنید آیا کلیه فایلهای DLL ای که زیر فایل OCX شما لیست شده، در دستگاه مقصد وجود داره یا خیر.... بعنوان نمونه، و برای اینکه کاملا متوجه مطلب بشید، من فایل flash.ocx رو در Dependency Walker باز کردم و متوجه 10 DLL ای شدم که این فایل به اونها نیاز داره:

65726

به لیست سمت چپ دقت کنید. اونجا کلیه DLL های مورد نیاز ocx من لیست شده. شما همین کارو با ocx خودتون باید انجام بدید تا مطمئن بشید کع ماشین مقصد حاوی کلیه DLL های مورد نیاز JwIdButn.ocx هستش. اگر نبود، که خوب، DLL رو دستی در ماشین مقصد کپی میکنید و آزمایش می کنید ببینید مشکل رفع میشه یا خیر. اما اگر کلیه DLL ها در ماشین مقصد وجود داشت، باید بریم سراغ مرحله بعد: اطمینان از صحت نصب خود ocx. برای اینکه این اطمینان حاصل بشه، Start رو بزنید و بنویسید cmd... سپس روی Command Prompt باید Right Click کنید و گزینه Run as administrator رو اجرا کنید. سپس بصورت دستی، اقدام به register کردن اون OCX کنید. برای Register کردن، باید دستور زیر رو در Command Prompt بزنید:


regsvr32 jwidbutn.ocx

وقتی Enter زدید، یا بازم پیام فوق رو میگیرید (که دیگه با توجه به وجود DLL های مورد نیاز روی ماشین، بعیده)، یا با موفقیت ocx شما ثبت میشه. در این مرحله برنامه رو آزمایش می کنید ببینید برنامه درست کار میکنه یا خیر. اگر همه چی درست بود، مشخصه که ایراد از برنامه نصاب شماست و باید دنبال ایراد در اون بگردید. بطور مثال، شاید MSI ای که ساخته اید دسترسی لازم برای Register کردن COM Component ها رو نداره و ... فعلا مراحلی که گفتم رو بررسی کنید تا بعد.

موفق باشید.