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

نام تاپیک: ارور

  1. #1
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452

    ارور

    سلام دوستان
    من یه برنامه با بورلند سی ++ نوشتم و موقع اجرا روی بقیه سیستمها این ارور رو میده
    mfc71.dll not found

    باید چیکار کنم
    چه جوری میشه دی ال ال به برنامم اضافه کنم

  2. #2
    با بورلند C نوشتین، اونوقت mfc71.dll رو می خواد ؟

  3. #3
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    بله
    خوب منم توهمینش موندم
    خیلی عجیبه

  4. #4
    احتمالا از یه ActiveX یا هر ماجول دیگه ای استفاده نکردین که قبلا با MFC 7 لینک شده باشه؟

  5. #5
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    میشه بیشتر توضیح بدین
    من با یه سری دستورات هندل کردن و اجرای فایل و این چنین دستورهای کار کردم تو برنامم
    حالا چه جوری میتونم دی ال ال مربوط رو به برنامم اضافه کنم تا دیگه ارور نده
    ممنون
    (البته من این برنامه رو قبلا با وی سی 7 کامپایل کرده بودم ولی حالا که با بورلند ابن کارومیکنم ارور میده)

  6. #6
    ببینین، اولا دقیقا شما از کدوم محیط بورلند استفاده می کنین؟ C++‎ Builder؟ ثانیا خوب dll های MFC 7.1 طبیعتا چیزیه که به طور پیش فرض حتی روی Windows XP هم نباید باشه. بنابراین خوب معلومه که پیغام خطا می ده. شما یه بار به صورت استاتیک با MFC لینک کنین، ببینین بازم همون پیغام رو می ده؟
    اینکه می پرسم از کدوم محیط بورلند استفاده می کنین، علتش اینه که شنیدم که C++‎ Builder می تونه پروژه های MFC رو هم کامپایل کنه.

  7. #7
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    من هم با بورلند سی ++ کامپایل کردم و هم با وی سی دات نت
    در هر دو صورت ارور میده
    موندم چیکارش کنم

  8. #8
    ببینین، البته جسارت نباشه. ولی مگه شما نمی گین بردینش روی یه کامپیوتر دیگه به جز اونی که کامپایل کردین؟ خوب سیستم عامل اون چیه؟ حتما این mfc71.dll رو نداره که این پیغام رو می ده دیگه. با هر نسخه ای که کامپایل کردین (منظورم debug یا release و ANSI یا UNICODE هست) dll مربوط به اون نسخه رو کپی کنین روی کامپیوتر جدید ببینین بازم همین اشکال پیش میاد.

  9. #9
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    حالا من چه جوری میتونم این دی ال ال رو بزارم تو خود فایل اجرایی

  10. #10
    عزیزم dll رو که توی فایل اجرایی نمی ذارن. اگه بخواین می تونین با تغییر تنظیمات پروژه تون، اونو به صورت استاتیک با MFC لینک کنین. توی Visual C++‎ 6.0:
    Project >> Settings >> General >> Microsoft Foundation Classes >> Use MFC in a Static Library

    توی Visual Studio .Net:
    Project >> Properties >> General >> Use of MFC >> Use MFC in a Static Library

    اما اینم بگم، این کار فایل اجرایی رو خیلی حجیم می کنه. کتابخونه های MFC بزرگ هستن. بهتره یا dll ها رو دستی کپی کنین، یا اگه می خواین اصولی تر عمل کنین، برای برنامه تون یه Installer بسازین.

  11. #11
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    ممنون
    ولی برنامه من که mfcنیست
    برنامه من کنسول هست
    (البته اگه بگین چه جوری میتونم واسه فورم برنامه بنویسم بیشتر کارم را میوفته منظورم اینه که مثل برنامه کنسول با اجرای برنامه برنامه اجرا بشه) مثل Form_Load() در وی بی
    ممنون
    آخرین ویرایش به وسیله amir_civil : یک شنبه 27 آذر 1384 در 13:48 عصر

  12. #12
    دو تا نکته:
    1. برنامه های کنسول هم می تونن از MFC پشتیبانی کنن. اگه هنگام ایجاد پروژه چک مربوطه رو علامت بزنین، یا در حین توسعه پروژه header های مربوطه رو به اون اضافه کنین، خوب طبیعیه که پشتیبانی MFC به پروژه کنسول شما اضافه می شه.
    2. متوجه منظورتون از برنامه نوشتن واسه فورم نشدم. اگه منظورتون استفاده از Windows Forms هست، که شرمنده، چون من از Net. اصلا سر در نمیارم. اگه چیز دیگه ای هست، لطفا یه کمی واضح تر بفرمایین، در خدمتتون هستم.

  13. #13
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    خوب من در هنگام ایجاد پروژه هم atl و هم mfcرو علامت زدم ولی....باز اررور میده
    چه جوری من header های مربوطه mfcروبه برنامه کنسولم اضافه کنم،

  14. #14
    همین کافیه، الان MFC به پروژه شما اضافه شده و علت اینکه روی یه کامپیوتر دیگه می گه mfc71.dll نیست هم همینه. دیگه Header ها هم خودشون اضافه شدن. الان دیگه همه چی درسته. اصلا اگه به dll گیر نمی داد یه اشکالی وجود داشت. حالا که گیر می ده کافیه همونطور که گفتم یا استاتیک لینک کنین، یا dll رو کپی کنین و دیگه مشکل حله.

  15. #15
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    من دیگه دارم قاط میزنم
    حالا این ارور رو میده: MFC initialization failed

  16. #16
    ای بابا! جون بیل گیتز مسیر این پروژه رو از اول بگو (دقیقا) شاید اصلا اشکال چیز دیگه ای باشه.

  17. #17
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    یه برنامه کنسول از قسمت win32
    در قسمت Application Settings گزینه هایmfc,atlتیک خورده اند
    برنامه بدون ایراد کامپایل میشه
    و موقع اجرا تو سیستم های دیگه یکی از 3 ارور زیر رو میده:
    mfc71.dll not  found

    MFC initialization failed

    this applicational has faied to start
    ;کلی اعصابم رو خورد کرده
    آخرین ویرایش به وسیله amir_civil : یک شنبه 27 آذر 1384 در 17:08 عصر

  18. #18
    راستش نمی دونم چی بگم .

  19. #19
    سلام
    اگه برنامه کنسول است دیگه MFC میخواهید چکار؟ تیک MFC و ATL رو بردارید. اگر هم MFC میخواد به صورت استاتیک استفاده کنید تا dll نخواد.
    ممنون علی

  20. #20
    سلام،
    آخه تعجب برانگیز اینه که MFC Initialization Failed می ده. وگرنه من حتی بدون Installer با کپی dll های MFC تونستم برنامه های کنسولی با پشتیبانی MFC رو روی کامپیوترای دیگه اجرا کنم.

  21. #21
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    اگه برنامه کنسول است دیگه MFC میخواهید چکار؟ تیک MFC و ATL رو بردارید
    خوب منم همینو میگم دیگه ولی با این ارور ها میخایی چیکار کنی

  22. #22
    دوست عزیز این دیگه اینقدر درد سر و کش دادن نداره.
    اصلا برای برنامه کنسول کافیه که یه کد پرتابل ++C رو با یه ادیتور ساده مثل Notepad یا Edit تو یه فایل وارد کنی بعدش هم با یک دستور خط فرمان هر کامپایلری توی هر سیستم عاملی کامپایلش کنید و اجراش کنید.
    به خدا قصد توهین یا اظهار فضل نداشتم.
    اما به نظر من مشکل از این ویزاردها و IDE هاست که ما رو یه کم تنبل می کنه باعث می شه نفهمیم پشت صحنه چی میگذره بعدش هم توی همچین شرایطی گیر می کنیم.

    در مورد اون MFC initialization failed هم یه نگاهی به تابع AfxWinInit تو MSDN بنداز.
    اگه به MFC احتیاج نداری تو project settings استفاده از MFC رو غیر فعال کن و هدر فایلهاش رو هم از تو کدت حذف کن. مطمئن باش در این صورت دیگه اون error ها رو نمی ده.
    اگه پروژه ات بزرگه و می خوای از MFC استفاده کنی بهتره از Dynamic Link to MFC استفاده کنی که این باعث می شه فایل اجراییت به dll های MFC برای اجرا احتیاج داشته باشه که در اینصورت باید اون DLL ها رو با برنامه ات redistribute کنی می تونی لیست dll هایی که فایلت برای اجرا احتیاج داره رو بوسیله dependencyWalker که یه برنامه از platform sdk است بدست بیاری.
    اما اگه یه فایل اجرایی کوچیکه می تونی به صورت Static از MFC استفاده کنی.

    در مورد form که فرمودید اصولا ما چیزی به نام form به معنای واقعی تو ++native vc نداریم. اگه منظورتون فرمهای .Net هست که هیچی اما می تونید تو MFC از کلاس CDialog و یک Dialog template استفاده کنید برنامه مبتنی بر فرم بنویسید. به این صورت که تو تابع InitInstance از کلاس گرفته شده از CWinApp برنامه تون یک instance از کلاس CDialog می سازید سپس تابع DoModal از شئی CDialog تون رو فراخوانی می کنید.
    موفق باشید.

  23. #23
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    ممنون.اگه میشه در مورد CDialog کمی بیشتر توضیح بدین ممنون میشم :لبخندساده
    آخرین ویرایش به وسیله amir_civil : دوشنبه 28 آذر 1384 در 10:27 صبح

  24. #24
    دوست عزیز به شما پیشنهاد می کنم کتاب Programing windows نوشته Charles Petzold و بعد از آن کتاب Programing Windows with MFC نوشته jeff prosise رو حتما برای برنامه نویسی ++native VC مطالعه کنید.
    من تنها می توانم در این پست اطلاعات اندکی آن هم فقط در مورد خود کلاس CDialog و نه Dialog Template و Dialog Manager به شما بدهم.
    کلاس CDialog فقط یک لایه شئی گرا بر فراز Dialog Manager است. و تا وقتی که شما از Dialog Manager اطلاعاتی نداشته باشید به سختی می توانید از آن استفاده کنید. MFC یک سری توابع و داده های مورد نیاز دیالوگ رو بصورت یک کلاس انتزاعی در آورده و به عنوان CDialog معرفی کرده است. کمترین چیزهایی که برای ساختن یک Modal Dialog احتیاج دارید اینست که یک شئی نمونه از کلاس CDialog ساخته و در constructor آی دی Dialog Template را داده و سپس DoModal را از شئی CDialog فراخوانی کنید.

    یک نمونه کد که به IDE خاصی احتیاج ندارد برای شما می گذارم می توانید این کد را در یک ادیتور متن وارد کرده و سپس با دستورهای خط فرمانی که در پایین نوشته ام آن را کامپایل و اجرا کنید. البته توصیه نمی کنم که حتما این کار را بکنید می توانید کد را مستقیما در VS وارد کرده و اجرا کنید در مورد Dialog template هم بهتره از Dialog editor ا Visual Studio استفاده کنید.


    // tst.cpp
    #include <afxwin.h>
    #include "resource.h"

    class CMyApp : public CWinApp
    {
    public:
    virtual BOOL InitInstance()
    {
    CDialog dlg(IDD_HELLODLG);
    dlg.DoModal();
    return CWinApp::InitInstance();
    }
    } theApp;



    فایل resource که شامل dialog template می باشد.

    // tst.rc
    // Microsoft Visual C++‎ generated resource script.
    //
    #include "resource.h"
    #include "afxres.h"

    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //

    IDD_HELLODLG DIALOGEX 0, 0, 169, 57
    STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "Dialog"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
    DEFPUSHBUTTON "OK",IDOK,60,36,50,14
    LTEXT "Hello world...",IDC_STATIC,62,15,44,8
    END




    // resource.h
    #define IDD_HELLODLG 101


    دستورات خط فرمان

    cl tst.cpp /c
    rc tst.rc
    link tst.obj tst.res /SUBSYSTEM:WINDOWS

    ضمنا برای اجرای دو دستور فوق باید کامپایلر ++VC در مسیر جاری موجود باشد.

    موفق باشید.

  25. #25
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    ممنون

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

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