مشاهده نسخه کامل
: فرق mfc dll با dll معمولي چيه و چطور مي تونم براي يك mfc dll فرم تعريف كنم؟
sara_she
24-04-2007, 08:28
با سلام
من يه سوال داشتم . تا حالا با ++visual c j تو vs.net كار نكردم مي خوام بدونم فرق mfc dll با dll معمولي چيه و چطور مي تونم براي يك mfc dll فرم تعريف كنم؟
ممنوم مي شم راهنماييم كنيد خيلي درگيرم:41:
سلام.
حتما تا حالا با MFC برنامه نوشتین و میدونین که شامل مجموعه ی بزرگی از کلاس ها ، توابع ، ساختار ها و....
هست. و برنامه نویسی رو چقدر راحت میکنه. (البته تحت Win)
Dll هایی که با VC میتونین ایجاد کنین میشه به طور کلی به دودسته تقسیم میشن:
1-Dll هایی که از کلاس های MFC استفاده میکنن.
2-Dll هایی که از کلاس های MFC استفاده نمیکنن.
در مورد نوع اول دونوع تقیسم بندی داریم :
1-Regular Dll
2- Extention Dll
در هر دو مورد شما میتونین از کلاس های MFC استفاده کنین با این تفاوت که در مورد اول Dll شما از
تعدادی توابع تشکیل شده برای export کردن اما در دومی شما برای export کردن محدودیتی ندارین.
به راحتی میتونین یه کلاس در Dll بنویسین و اون رو export کنین.
محدودیتی که این Dll ها دارن اینه : چون از کلاس های MFC استفاده میکنن ، تنها در برنامه هایی میتونین
ازشون استفاده کنین که از MFC پشتیبانی کنن.
اما در مورد Dll ی که از MFC استفاده نمیکنه و اون رو میتونین تحت عنوان Win32 Dll پیدا کنین نوعی Dll
عمومی هست که در تمام زبان ها میشه ازون استفاده کرد چون از ساختار Windows استفاده میکنه.
یعنی Dll که شما در VC مینویسین قابل استفاده در زبانی مثل VB هست. و این موردی هست که Dll های نوع
اول دارن.
تا اینجا توضیحاتی خلاصه در مورد Dll ها:
اگه شما یه Extention Dll ایجاد کنین به راحتی میتونین به اون form اضافه کنین.
کافیه به Resource Tab پروژه تون برین و روی Resource پروژه راست کلیک کنین و تز منوی Insert گزینه ی
Dialig رو انتخاب کنین تا یه form به Dll شما اضافه بشه. فقط در تعریف کلاس باید AFX_EXT_CLASS استفاده
کنین تا بشه از این کلاس جدید استفاده کرد.
sara_she
26-04-2007, 10:23
ممنون از توجهتون . مشكل اينه كه من نه تا به حال با mfc و نه visual c++ كار كردم اينه كه كمي دير مي گيرم. اگه مي شه كمي بيشتر در مورد afx و چگونه اضافه كردنشون توضيح بدين .يه چيز ديگه اينكه من وقتي از قسمت resource بخش add resource و سپس گزينه dialog رو انتخاب مي كنم كلي مورد باز مي شه كه نمي دونم كدوم رو انتخاب كنم .البته نمي خوام فرم از نوع mfc باشه .ممنون از همكاري شما
sara_she
28-04-2007, 11:16
با سلام
من مي خوام فرم به mfc dll اضافه كنم ولي نمي خوام از نوع mfc application باشه مي خوام فرم هام از نوع winformapplicationباشند . اين كار رو كردم ويك فرم win formapplication ساختم و با add existing item به dll اضافه كردم ولي موقع اجرا از فضفاي نام(namespace ) موجود در كد فرم ها ايراد مي گيره ميشه يكي بگه مشكل چيه؟
ممنون مي شم
hamidreza_buddy
28-04-2007, 15:39
خوب چرا می خوای اینکارو کنی. حتماً باید dll رو با mfc بسازی؟
چرا dll رو به صورت NET. نمی سازی؟ اونجوری که راحت تره.
sara_she
29-04-2007, 12:46
با سلام
من يه فرم با winformapplication تو c++.netساختم و به يه mfc dll اضافه كردم . موقع build كردن خطاي زير رو مي بينم
fatal error C1190: managed targeted code requires '#using <mscorlib.dll>' and '/clr' option
در حالي كه mscorlib.dll را در فايل cpp گذاشته ام .مشكل چيست؟
سلام.
در مورد اضافه کردن form به Dll صحبت کردیم.
بعد از اینکه form رو اضافه کردین روی اون راست کلیک کنین و classWizard رو باز کنین.
از dialog باز شده از شما پرسیده میشه که میخواین کلاس جدیدی به پروژه اضافه کنین یا از همون کلاس
قبلی استفاده کنین.
کلاس جدیدی اضافه کنین با اسم دلخواه اضافه کنین و بعد به header کلاس ایجاد شده خط زیر رو اضافه کنین:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تابعی به Dll تون اضافه کنین مثلا با این عنوان :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یادتون باشه باید header این کلاس رو به Dll اضافه کنین.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای تست برنامه فایل های dll و lib رو به پروژه ی جدید اضافه کنین .
به این شکل عمل کنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته به جای استفاده از pragma# میتونین فایل lib رو به پروژه ی جدید اضافه کنین.
اگه توضیحات کافی نیست یا مشکل حل نشد اطلاع بدین.
سلام.
وقتی شما با C++.Net کار میکنین در حقیقت Manage Cpp مینویسین.
برای اینکه برنامه تون کامپیل بشه باید از سوئیچ clr/ استفاده کنین.
البته اگه شما از VS2005 استفاده میکنین باید بدونین که syntax زبان Cpp تغییر کرده و اگه شما
به صورت قبل از syntax زبان Cpp استفاده میکنین باید از old clr/ استفاده کنین.
(البته در تعاریف اشارگرها و چند مورد دیگه )
از VS2005 استفاده میکنین یا VS2003 ؟
hamidreza_buddy
29-04-2007, 20:43
به منوی Project->Properties برو و در آنجا برو به Configuration Properties . در آنجا یک گزینه هست به نام Managed Extensions (در vs2003) و یا Common Language Runtime Support (در VS2005) . در 2003 آن را Yes کنید و در 2005 گزینۀ Common Language Support را انتخاب کنید.
حمیرضا گفتن باید چه کار کنین.
اما در مورد 2005
گزینه ی زیر رو انتخاب کنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مگر اینکه از syntax جدید استفاده کنین.
sara_she
30-04-2007, 08:40
اين كار براي mfc dll هست يا dll معمولي؟و اگه براي mfc dll به كار ميره شما قبلأ گفتيد اضافه كردن فرم به extension dll راحته اما در مورد sharing dll چيزي نگفتيد!
sara_she
30-04-2007, 08:41
يكي جواب منو بده اين فرم هايي كه اينجوري اضافه مي شن از كداي mfc استفاده م كنن؟
sara_she
30-04-2007, 09:05
ممنون از توجهتون
يه سوال ديگه . مشكلم با mscorlib.dll حل شد ولي بازم برنامه خطايي به صورت زير داره:
.: fatal error C1107: could not find assembly 'System': please specify the assembly search path using /AI or by setting the LIBPATH environment variable
مي شه بگين مشكل از چيه و اصلا اضافه كردن يك
(windows fprm application(.net به يك mfc dll درسته . اگه درسته پس چرا فضاي نام systemرو نميشناسه؟
sara_she
30-04-2007, 09:40
در مورد فرم هم اگه مي شه اونجوري كه گفتم راهنماييم كنيد. من فرم هامو با windows form application(.net ساختم و همين طوري كه اجرامي شن مشكلي ندارن ولي وقتي با add existing item به mfc dll اضافه مي شن فضاي نام system براي برنامه شناخته شده نيست.
آرام جان گل
01-05-2007, 23:20
سلام
لطفا توصيح بديد كه dll ها چي هستن و چطوري مي تونم به صورت فارسي در مورد اونها تحقيق كنم مثلا وب لاگي يا سايتي و يا فايلي؟
خيلي دوست دارم بدونم dll ها چي هستن
مرسي
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.