نمایش نتایج 1 تا 5 از 5

نام تاپیک: تشخیص فایل های مورد نیاز از سورس

  1. #1
    کاربر دائمی آواتار drsina
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    Iran - Esf
    پست
    541

    تشخیص فایل های مورد نیاز از سورس

    چه جوری میشه فایل های dll ای که یه پروژه ی C++‎ از اونها استفاده میکنه رو تشخیص داد که همراه فایل ارائه بدم ؟!
    من با dependency walker کار کردم ولی دقیقا اون چیزی رو که میخوام نمیده .
    بالافرص یه پروژه دارم روو کامپیوتر خودم به خوبی کار میده ولی وقتی جایی دیگه میبرم اررو میده و مثلا فایل msvcr120 رو میخواد که باید دانلود کنم و اون توو system32 یا پهلوی برنامه بزارم .

    جالب اینجاست که هر دفعه هم یه نوع فایل msvcr و msvcp میخواد

  2. #2

    نقل قول: تشخیص فایل های مورد نیاز از سورس

    سلام
    این طور که از سوال بر میاد لازمه vcredist را هم به همراه برنامه در سیستم مورد نظر نصب کنید لطفا لینک زیر را مشاهده کنید که توضیحات کاملتر داده:
    https://msdn.microsoft.com/en-us/library/ms235299.aspx

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1388
    محل زندگی
    NULL
    پست
    87

    نقل قول: تشخیص فایل های مورد نیاز از سورس

    سلام.لطفا اینم ببین
    لینک

  4. #4

    نقل قول: تشخیص فایل های مورد نیاز از سورس

    سلام

    این بستگی به کامپایلر داره دوست عزیز

    در کل بر اساس کتابخانه هایی که موجود هستش به موارد زیر باید توجه کنیم.

    ابتدا باید بگم C++‎‎‎‎‎‎‎‎ در اصل شامل فقط فایل های msvcp و msvcr نیست و باید در نظر بگیریم این دو فایل زمانی مورد نیاز هستش که شما از کامپایلر MSVC که برای ویندوز و انحصار مایکروسافت استفاده کنید بنابراین این دیدگاه رو داشته باشید که فقط در کامپیالر مربوط به ویندوز این دو فایل رو لازم داریم و در ادامه توضیحات تکمیلی رو میدم.

    فایل msvcpxxx.dll از نام / نسخه و پسوند مشخص میشه یعنی msvcp مخفف :Microsoft Visual C++‎‎ هستش و در انحصار مایکروسافت و کامپایلر MSVC قرار داره گزینه xxx عددی است که مشخص کننده نسخه کامپایلر هستش که معمولا با نسخه VS همخوانی داره و پسوندش هم که مشخصه dll مخفف dynamic link library هستش و مخصوص پلتفرم ویندوز.

    فایل msvcrxxx.dll از نام / نسخه و پسوند مشخص میشه یعنی msvcr مخفف : Microsoft Visual C++‎‎‎‎‎‎‎‎ Runtime هستش و در انحصار مایکروسافت و کامپایلر MSVC قرار داره گزینه xxx عددی است که مشخص کننده نسخه کامپایلر هستش که معمولا با نسخه VS همخوانی داره و پسوندش هم که مشخصه dll مخفف dynamic link library هستش و مخصوص پلتفرم ویندوز.

    نسخه این فایل ها بر اساس نیاز و نوع کامپایلر مشخص میشه به صورت زیر :


    • در صورت کامپایل برنامه در محیط Visual Studio 2005 نسخه فایل های مورد نیاز vs=80 خواهد بود به این صورت : msvcp80.dll و msvcr80.dll
    • در صورت کامپایل برنامه در محیط Visual Studio 2008 نسخه فایل های مورد نیاز vs=90 خواهد بود به این صورت : msvcp90.dll و msvcr90.dll
    • در صورت کامپایل برنامه در محیط Visual Studio 2010 نسخه فایل های مورد نیاز vs=100 خواهد بود به این صورت : msvcp100.dll و msvcr100.dll
    • در صورت کامپایل برنامه در محیط Visual Studio 2012 نسخه فایل های مورد نیاز vs=110 خواهد بود به این صورت : msvcp110.dll و msvcr110.dll
    • در صورت کامپایل برنامه در محیط Visual Studio 2013 نسخه فایل های مورد نیاز vs=120 خواهد بود به این صورت : msvcp120.dll و msvcr120.dll
    • در صورت کامپایل برنامه در محیط Visual Studio 2015 نسخه فایل های مورد نیاز vs=120 خواهد بود به این صورت : msvcp140.dll و msvcr140.dl


    حالا فرض کنیم ما از کامپایلر های دیگه ای استفاده میکنیم مثل MinGW که در اصل GCC هست و بر پایه ایستگاه های UNIX (X11) پیاده سازی شده خب در این صورت دیگه خبری از msvc و msvcr نخواهد بود و با نصب gcc کتابخانه های استاندارد C++‎‎‎‎‎‎‎‎‎‎‎ در سیستم یونیکس قابل اجرا خواهد شد.

    بر فرض اینکه از کتابخانه مشخصی مثلا مثل Qt استفاده میکنیم نیاز هستش تا فایل هایی مورد نیاز اون رو نیز داشته باشیم مثل : Qt5Core.so و ... یا کتابخانه های دیگه ای مثل Poco که فایل های مثل PocoFoundationd.so و ... رو نیاز دارند.


    یک توضیح در رابطه با نکته ای شاید جزئی ولی بسیار مهم ! فرض کنید برنامه شما به صورت Debug در MSVC2012 کامپایل شده در این صورت به نظر شما برنامه با وجود فایل های
    msvcp110.dll و msvcr110.dll اجرا خواهد شد ؟ جواب خیر است !

    نکته : حجم برنامه هایی که برای تست و بررسی و به صورت Debug انتشار میابند بیشتر از حجم برنامه با خروجی اصلی یعنی Release می باشد.
    نکته دوم : دلیل حجم بالای حالت debug این هستش که در این نسخه برنامه قابلیت Debug را دارد و به دلیل اضافه شدن مواردی اضافی برای امکان ارائه خطایابی حجم این نسخه بالا تر و سرعت اجرایی نیز پایینتر میباشد.

    در اینجا باید به اینهم توجه داشته باشیم که حالت کامپایل برنامه نیز مهم است به عنوان مثال اگر ما به صورت Debug برنامه رو کامپایلر میکنیم باید فایل های msvcp110d.dll و msvcr110d.dll در کنار برنامه موجود باشند به کلمه d توجه کنید هر کتابخانه ای که به صورت دیباک کامپایل بشه با حرف d به صورت پیشفرض خروجی آن مشخص و شامل حجم بیشتری نسبت به حالت Release میباشد و بر عکس نسخه نهای یک برنامه باید به صورت Release کامپایل شود که بدون وجود کلمه d مشخص و حجم کلی آن پایینتر است.

    پس این رو هم در نظر بگیرید که در اصل C++‎‎‎‎‎‎‎‎ بر اساس نوع سیستم عامل و نوع کامپایلر فایل های lib رو نیاز خواهد داشت حال اینکه در زبانی مثل C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎ وقتی کتابخانه .NET رو نصب میکنیم تمامی فایل های مورد نیاز در خود سیستم عامل نصب میشوند تا برنامه های نوشته شده تحت چنین زبانی قابل اجراء شوند که برای C++‎‎‎‎‎‎‎‎ هم بر اساس نسخه های موجود پکیجی با نام Visual C++‎‎‎‎‎‎‎‎‎‎‎ Redistributable Packages رو فراهم میکنند تا با نصب اون در سیستم عامل دیگر نیازی نیست شما این دو فایل msvc و msvcr رو در کنار برنامه کپی کنید.

    ولی به یک نکته بر اساس تجربه شخصی اشاره میکنم سعی کنید فایل های مورد نیاز مثل همین dll ها رو همیشه در کنار برنامه یعنی فایل اجرائی داشته باشید در این صورت بعد از نصب آن در هر سیستمی که حتی پکیج پیشنهاد شده موجود و نصب نشده باشد برنامه شما بدون مشکل اجرا خواهد شد چرا که معروفترین برنامه ها از همین قانون پیروی میکنند مگر اینکه در هنگام نصب همون پکیج پیشنهادی رو هم برای نصب در اختیار Client قرار دهند.

  5. #5

    نقل قول: تشخیص فایل های مورد نیاز از سورس

    در MSVC اگر پروژه مورد نظر رو به صورت استاتيک کامپايل کنيد برنامه شما standalone ميشه و نيازی به اين dll ها و يا نصب vcredist نيست
    البته اگر از کتاب خانه ديگه اي تو پروژه استفاده کنيد اون رو هم بايد به صورت استاتيک کامپايل کنيد در غير اين صورت نياز به dll کتابخانه مورد نظر هست

تاپیک های مشابه

  1. سوال: تشخیص فایل های مورد نیاز برنامه
    نوشته شده توسط HamedFaa در بخش تولید و توسعه برنامه های Setup و Install
    پاسخ: 0
    آخرین پست: پنج شنبه 12 تیر 1393, 10:45 صبح
  2. سوال: نحوه تشخیص کامپوننت های مورد نیاز یک سورس
    نوشته شده توسط mostafapro در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: دوشنبه 18 شهریور 1392, 18:49 عصر
  3. فایل های مورد نیاز جهت اجرای یک فایل exe
    نوشته شده توسط mohammad_d در بخش Foxpro
    پاسخ: 50
    آخرین پست: سه شنبه 30 تیر 1388, 07:16 صبح
  4. فایل های مورد نیاز یک گزارش Crystal Report برای Vb
    نوشته شده توسط HjSoft در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 3
    آخرین پست: سه شنبه 18 فروردین 1388, 14:21 عصر
  5. کنترل دیتا و فایل های مورد نیاز برای اجرا
    نوشته شده توسط Web Stroke در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: شنبه 15 مهر 1385, 01:42 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •