PDA

View Full Version : سوال: اجرای برنامه هنگام اضافه کردن dll یا ocx یا کامپوننت یا رفرنس به فایل های جانبی نیاز دارد ؟



shinyboy
دوشنبه 10 شهریور 1393, 21:49 عصر
همانطور که تو عنوان هم نوشتم بعضی وقتا ما یه کامپوننت یا کتابخانه یا رفرنس رو به برنامه خودمون اضافه میکنیم آیا بعد از اینکه ما از برنامه خودمون خروجی exe گرفتیم و خواستیم این برنامه رو روی سیستم های دیگه اجرا کنیم باید سیستم های مقصد هم اون dll or ocx or component or refrence رو داشته باشه حتما یا خود برنامه ویژوال بیسیک به صورت اتوماتیک اون قسمت از کد رو که لازم داره در برنامه کپی میکنه ؟

اگه میشه کامل توضیح بدید کی باید این فایل ها همراه برنامه باشه و کی نیاز نیست که همراه برنامه باشن . تا بتونیم برنامه ای بنویسیم که به راحتی تو تمام سیستم ها (نه فقط سیستم خودمون ) به صورت کامل اجرا بشن و دیگه فایل نخوان ؟ مرسی



.

vbhamed
چهارشنبه 12 شهریور 1393, 10:17 صبح
سلام

بله، لازمه كه همه فايلهاي dll, Ocx تو سيستم مقصد هم باشن ولي معمولا يكسري از اين فايلها روي همه ويندوزها هستن

براي اينكه بفهميد چه فايلهايي استفاده شده و چطوري اونها رو روي سيستم كاربر هم بريزيم بايد براي برنامتون ستاپ درست كنيد، لطفا بخش ساخت ستاپ (http://barnamenevis.org/forumdisplay.php?211-%D8%B3%D8%A7%D8%AE%D8%AA%D9%86-Setup-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-VB6) رو در همين تالار VB6 مطالعه نماييد.

ایلیا آخوندزاده
چهارشنبه 12 شهریور 1393, 10:21 صبح
شما وقتی از پروژه خودتون کامپایل گرفتین ویژوال تمام ocx و dll های بکار رفته رو استخراج میکنه اگه از setup fectory برای فایل نصبی استفاده کنید میتونید بدون نیاز به بهمراه داشتن فایل ها برنامه رو نصب و اجرا کنید و در غیر اینصورت برای ocx , dll های خود ویژوال باید رو سیستم دیگه ویژوال نصب باشه و بقیه به صورت دستی ریجستر بشن.البته از wise هم برای فایل ستاپ میتونید استفاده کنید.

این لینک برای wise هست که توصیه میکنم سربزنید :http://barnamenevis.org/showthread.php?107573-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B3%D8%AA%D8%A7%D9%BE-%D9%83%D8%A7%D9%85%D9%84-%D9%88-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1
موفق باشید.

shinyboy
پنج شنبه 13 شهریور 1393, 21:09 عصر
مرسي . اگه لازم باشه فايل فقط يدونه فايل بدون مراحل نصب باشه نميشه كار ديگه اي انجام داد وقتي از يك فايلهايي dll ويا ocx استفاده مي كنيد فقط يك يا دو تابع از اين توابع رو تو برنامتون لود ميكنيد نميشه كد مربوط به همون دو تابع رو در يك ما‍ژول جداگانه در برنامه خودمون قرار بديم ! يا همچين چيزي خلاصه نخواييم برنامه مراحل نصب داشته باشه و تك فايل هم باشه ! فقط يه فايل اجرايي ؟

vbhamed
جمعه 14 شهریور 1393, 16:50 عصر
سلام
خب وقتي شما به سورس اون Dll يا Ocx دسترسي نداريد نميشه كد يك تابع خاصش رو فقط داشته باشيد ضمن اينكه بعضي توابع براي اجرا ممكنه به بقيه توابع وابسته باشن
براي نصب هم فايل ستاپ نهايي يك دونه فايل هستش ولي چنانچه مي‌خواين كلا ستاپ نداشته باشيد اگر خيلي خوش شانس باشيد و با كپي فايل Dll و Ocx كنار فايل اجراييتون، برنامتون اجرا بشه، اونموقع مي‌تونيد با Winrar اين فايلها رو به صورت يك پك exe در بياريد تا خودش خودش رو باز كنه و اجرا بشه در غير اينصورت كارتون بيشتر ميشه، بايد برنامتون رو پرتابل كنيد كه اين خودش ميشه ساخت ستاپ + پرتابل كردن و در نهايت فقط يك دونه فايل داريد كه اجرا ميشه و هيچ نصبي هم در كار نيست
براي اينكار به تاپيك زير مراجعه نماييد :
http://barnamenevis.org/showthread.php?158999-%D8%A7%D8%AC%D8%B1%D8%A7%D9%8A-%D9%87%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%D9%8A-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%D9%8A%D8%A7%D8%B2-%D8%A8%D9%87-%D9%86%D8%B5%D8%A8

ایلیا آخوندزاده
شنبه 15 شهریور 1393, 07:43 صبح
سلام آقای vbhamed
فرمایش شما متین بالاخره شما تجربتون خیلی بیشتر از ماست ولی اگه تو پروژه دستور بدیم که فلان ocx یا dll رو از مسیر app.path استفاده کن شاید بشه کنار برنامه یکاری کرد ولی درغیر این صورت اون سیستم یا باید خودش ocx , dll های مورد نظر توش باشه(ریجستر شده باشه) یا اینکه به صورت دستی ریجستر کنیم درغیر اینصورت باهربار اجرای فایل اجرایی برنامه با خطایی مواجه میشیم که محتوی ارور نشناختن ocx , dll هستش و بعد از اون پیام ارور run time داده میشه و برنامه بسته میشه بهترین راه برای اینکار استفاده از دستورات داس هست که فایل هارو ریجستر کنه ولی من اونو بلد نیستم و تو خیلی پروژه ها هم دیدم .:متفکر:
با عرض پوزش و تشکر مجدد از شما استاد گرامی

aliwer
شنبه 15 شهریور 1393, 11:23 صبح
میشه درمورد دستور ریجستر بوسیله داس توضیح بدید؟

vbhamed
شنبه 15 شهریور 1393, 20:50 عصر
سلام آقای vbhamed
فرمایش شما متین بالاخره شما تجربتون خیلی بیشتر از ماست ولی اگه تو پروژه دستور بدیم که فلان ocx یا dll رو از مسیر app.path استفاده کن شاید بشه کنار برنامه یکاری کرد ولی درغیر این صورت اون سیستم یا باید خودش ocx , dll های مورد نظر توش باشه(ریجستر شده باشه) یا اینکه به صورت دستی ریجستر کنیم درغیر اینصورت باهربار اجرای فایل اجرایی برنامه با خطایی مواجه میشیم که محتوی ارور نشناختن ocx , dll هستش و بعد از اون پیام ارور run time داده میشه و برنامه بسته میشه بهترین راه برای اینکار استفاده از دستورات داس هست که فایل هارو ریجستر کنه ولی من اونو بلد نیستم و تو خیلی پروژه ها هم دیدم .:متفکر:
با عرض پوزش و تشکر مجدد از شما استاد گرامی

سلام
اصلا قرار نيست دستور داده بشه كه از مسير خاصي استفاده بشه
بعضي از كتابخانه ها و كامپوننتها همين كه كنار فايل Exe برنامه باشن كافيه و برنامه خودش ابتدا در مسير فايل Exe خودش دنبال كامپوننت مي‌گرده و بعد هم در مسيرهاي سيستم مثل پوشه System32 و اگر فايل پيدا بشه مي‌تونه به راحتي اجرا بشه
البته اين در مورد همه كامپوننتها صدق نمي‌كنه واسه همين گفتم اگر خوش شانس باشيد برنامتون بدون مشكل اجرا ميشه