با سلام
من يه سوال داشتم . تا حالا با ++visual c j تو vs.net كار نكردم مي خوام بدونم فرق mfc dll با dll معمولي چيه و چطور مي تونم براي يك mfc dll فرم تعريف كنم؟
ممنوم مي شم راهنماييم كنيد خيلي درگيرم![]()
با سلام
من يه سوال داشتم . تا حالا با ++visual c j تو vs.net كار نكردم مي خوام بدونم فرق mfc dll با dll معمولي چيه و چطور مي تونم براي يك mfc dll فرم تعريف كنم؟
ممنوم مي شم راهنماييم كنيد خيلي درگيرم![]()
سلام.
حتما تا حالا با 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 استفاده
کنین تا بشه از این کلاس جدید استفاده کرد.
ممنون از توجهتون . مشكل اينه كه من نه تا به حال با mfc و نه visual c++ كار كردم اينه كه كمي دير مي گيرم. اگه مي شه كمي بيشتر در مورد afx و چگونه اضافه كردنشون توضيح بدين .يه چيز ديگه اينكه من وقتي از قسمت resource بخش add resource و سپس گزينه dialog رو انتخاب مي كنم كلي مورد باز مي شه كه نمي دونم كدوم رو انتخاب كنم .البته نمي خوام فرم از نوع mfc باشه .ممنون از همكاري شما
با سلام
من مي خوام فرم به mfc dll اضافه كنم ولي نمي خوام از نوع mfc application باشه مي خوام فرم هام از نوع winformapplicationباشند . اين كار رو كردم ويك فرم win formapplication ساختم و با add existing item به dll اضافه كردم ولي موقع اجرا از فضفاي نام(namespace ) موجود در كد فرم ها ايراد مي گيره ميشه يكي بگه مشكل چيه؟
ممنون مي شم
خوب چرا می خوای اینکارو کنی. حتماً باید dll رو با mfc بسازی؟
چرا dll رو به صورت NET. نمی سازی؟ اونجوری که راحت تره.
با سلام
من يه فرم با 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 ؟
به منوی Project->Properties برو و در آنجا برو به Configuration Properties . در آنجا یک گزینه هست به نام Managed Extensions (در vs2003) و یا Common Language Runtime Support (در VS2005) . در 2003 آن را Yes کنید و در 2005 گزینۀ Common Language Support را انتخاب کنید.
حمیرضا گفتن باید چه کار کنین.
اما در مورد 2005
گزینه ی زیر رو انتخاب کنین :
مگر اینکه از syntax جدید استفاده کنین.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)