ايران ويج

نسخه‌ی کامل: مشکل EXE در VB
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام به اساتید ایران ویج.
من که حسرت به دلم موند که یک بار هم که شده برنامه EXE که با VB، در یک کامپیوتر دیگه درست کار کنه. این Delphi خیلی عالی در این زمینه کار کرده. برنامه EXE که با Delphi نوشته میشه، با کپی کردن فقط چندتا Dll اجرای برنامه های Delphi قشنگ کار میکنه.

من یه برنامه با VB نوشته بودم، که ایتدا یک پنجره Open با comDlg32.ocx باز میشد و یک فایل Excel را بار میکرد و سپس عملیات Database مثل Add,Del,... روی آن انجام میداد. این برنامه توی کامپیوتر خودم مثل ماه کار میکرد. اما به محض اینکه پاش به یه کامپیوتر دیگه رسید، با وجود اینکه روش VB Runtime نصب کردم، پس از اینکه پنجره Open باز میشد و کاربر فایل Excel را انتخاب میکرد، یک Error به شرح زیر میامد:
Class not registered:
Please view this object:{000-10110-0001-00010-1EF0...}
بعد از زدن کلید Ok پنجره اصلی برنامه ظاهر میشد، اما نمیتونست عملی روی فایل Excel انجام بده.

این برنامه پس از نصب VB Enterprise Componenets و سایر مخلفات Visual Studio 6.0 روی آن کامپیوتر هم بخوبی کار کرد. اما نباید برای اجرای برنامه EXE به نصب VS نیاز باشد. ضمنا من بجز همان comDlg32.ocx که آن هم درست کار میکند، از هیچ کامپوننت دیگری استفاده نمیکنم.

لطفا کمک کنید. از کمکهایتان بسیار متشکرم.
سلام
به شرطی برنامت در یه سیستم اجرا میشه که همه کامپوننت ها و کتابخانه های مورد نیاز برنامت در اون سیستم رجیستر شده باشه.
حتی اگر برنامت رو تبدیل به پک ستاپ کنی دیگه لازم نیست تک تک فایل ها رو خودت برداری و به سیستم بشناسونی.
برنامه Package & Deployment Wizard که جزء ابزار VS6 هست یکی از ابزار نسبتا ضعیف هست که برای شروع کار ایجاد پک های ستاپ برنامه خوبیه.
دوست عزیز، توجه داشته باش، که من مشکلم در همین نصب برنامه است. یعنی من فقط میتوانم آن را کپی کنم. چون نمیخواهم کسی از نصب آن باخبر شود.
mri_6889 نوشته است:دوست عزیز، توجه داشته باش، که من مشکلم در همین نصب برنامه است. یعنی من فقط میتوانم آن را کپی کنم. چون نمیخواهم کسی از نصب آن باخبر شود.
خوب ولی منظورم این بود که لیست همه فایل های مورد نیازت رو از طریق
ویزاد همون برنامه بدست بیار.
بعد با استفاده از یک اسکریپت (یا Batch فایل) همه اونها رو درون سیستم
مورد نظرت رجیستر کن.
سلام. بابا این ویزارد هم که کاری نمیکنه چون وقتی دکمه Package رو در همان پنجره ای که ابتدا ظاهر میشود و پروژه را انتخاب میکنیم میزنم، Error زیر با یک علامت خطر ظاهر میشود.و پس از زدن OK هم هیچ اتفاقی نمی افتد و ویزاردی اجرا نمیشود و دوباره در همان پنجره هستم. حالا متن Error

Unexpended error number 429 has occurred: ActiveX component can't creat
object.
این پیغام نشون می ده که یکی از کامپوننت های مورد نیاز برنامه شما در سیستم وجود ندارد (و یا حداقل روی دیسک سخت شما هست اما رجیستر نشده)
اگر برنامت (پروژت) به خوبی اجرا می شه این نشون می ده درون برنامت کامپوننتی را وارد کردی که اصلا ازش استفاده ای نمی کنی. برای همین چک کن آیا شیء یا کتابخانه ای هست که به برنامت پیوند زده باشی اما درون برنامه ازش استفاده نکرده باشی.
در کل غیر منطقی که کامپوننتی رو که لازم نداری رو به برنامه پیوند بزنی.

اما از طرف دیگه ممکن هست که یکی از کامپوننت هایی که در برنامت ازش استفاده کردی و در سیستم هم رجیستر شده, برای آن کامپوننت کتابخانه یا ActiveX موزد نیازش در دست رس نباشد!
اگر برات ممکن هست کدت رو بفرست تا برات آنالیز کنم!
اگر نه فقط فایل پروژت رو بفرست (.Vbp)

این برنامه Package & Deployment Wizard رو هم برای این مثال زدم که دم دست تره و کار کردن باهاش راحت تره (در عین حال قدرتش هم کمتره)
اما می تونی اون لیستی رو که بهت گفتم از طریق برنامه های دیگه هم مثل Install Shield یا Wisio Installer و ... به دست بیاری.
سلام. دستت درد نکنه. آقا این برنامه منه به همراه کلیه فایلها. لطفا یه بررسی بکن ببین دقیقا کجای کار میلنگهQuestion

متشکرمSmile

[attachment=202]
این هم فایل Setup.lst که از راه Pakage کردن برنامه شما به دست اومد.
درونش همه فایل های مورد نیاز "که تعدادشون هم کم نیست" لیست شده. بعلاوه نسخه و تاریخ و مشخصات فایل مورد نظر.

در کل فکر کنم اگر به جای DAO از ADO در پروژت استفاده کنی بهتر باشه!
سلام. خوب چرا با وجود اینکه فقط از یک کامپوننت استفاده کردم، باز هم فایلهای مورد نیاز زیاد است؟ دوم اینکه چرا شما توانستی Setup را بسازی اما مال من Error میده با توجه به اینکه برنامه، بخوبی اجرا میشه.
mri_6889 نوشته است:سلام. خوب چرا با وجود اینکه فقط از یک کامپوننت استفاده کردم، باز هم فایلهای مورد نیاز زیاد است؟ دوم اینکه چرا شما توانستی Setup را بسازی اما مال من Error میده با توجه به اینکه برنامه، بخوبی اجرا میشه.
به خاطر اینه که کتابخانه های زیادی به برنامت پیوند زدی!
به بخش References برنامت برو همرو اونجا می بینی!
در ضمن بعضی از کتابخانه ها مانند Microsoft DAO 3.51 Object Library هست که این خودش باز هم منابع زیادی احتیاج داره. به خاطر همین برنامت برای توزیع باید همه اون منابع رو به همراه داشته باشه (منظورم در زمان ساختن پک Setup هست)
حتی اگر شما از DAO درون کدهات استفاده نکرده باشی!
به خاطر همینه که می گم بهتره از ADO استفاده کنی...
سلام.
کلا فهمیدم. اما یک سؤال دیگه، برنامه ای وجود نداره که بشه با اون، برنامه ما بدون نیاز به Dll و Ocx همراه در هر سیستمی کار کند. یعنی به نوعی هر چی متعلقات با برنامه هست همه در یک Exe جمع بشه که نیازی به کپی کردن فایلهای اضافی نباشه. حتی اگه بشه نیازی به نصب VbRuntime هم نباشه. و خلاصه برنامه کاملا مستقل عمل کند.
متشکرم از راهنمایی هایت.
صفحه‌ها: 1 2