PDA

View Full Version : تبدیل برنامه MFC به ویندوز



machin11
سه شنبه 22 مرداد 1392, 23:23 عصر
سلام
می تونید کمکم کنید خواهش..
این برنامه دیتا ماینر خود استادم به زبان سی پلاس پلاس تو محیط visual stadio98 نوشته مال چند سال پیش هست از من خواستن که این پروژه را به vC++‎‎‎‎‎2008 یا vC++‎‎‎‎‎2010 تبدیل کنم من چون ویژال 2008 نصب ندارم می خواهم به 2010 ببرم که این برنامه بتونه اونجا اجرا بشه. حالا این تبدیل به همین سادگی که فایل اجرایی برنامه را runکنی خود ویژال 2010 تبدیل را انجام میده نیست.یعنی استادم اینو از من نمی خواد خودش قبلا اینکار را کرده ازمن می خواد کل ساختار را خط به خط یعنی آرایه ها اشاره گرها وهمه چیز.. را ساختارشون عوض کنم وبه CLR تبدیل کنم. چند راه برام گفته اینکه اول باید بفهمم این برنامه چطور کار میکنه برای همین باید نرم افزارvisual stadio98راروی یه سیستم بدون .Net fram work نصب کنم تا برنامه بتونه بدون خطا اجرا بشه وببینم کلا برنامه چیه چکار میکنه ولی چون الان تمام سیستم ها .Net farm work دارن اینکار برایم مقدور نبود.گفتن پس باید یه پروژهwindowsfrom .net baase در2010 یا2008 اول ایجاد کنم بعد یکی یکی از کوچکترین تابع وکلاس شروع کنم وساختارشون عوض کنم کپی کنم(چون این محیط ها فقط کد CLR وحالت safemode را فبول میکنن) واونجا pasteکنم. ازمن می خواد که مثلا بجای اشاره گرها (*) (که در vC++‎‎‎‎‎6 مورد قبول بوده) از(^ در ورژن جدیدvC++‎‎‎‎‎10 مورد قبول هست که بجای اشاره گر خود شی مستقیما مورد استفاده قرار می گیرد) وgcnew استفاده بشه وبه شکل CLRو NetBase.بازنویسی کنم میگه این کار خیلی سنگین هست وپیچیدگی هایم داره خیلی زمانبره وحتی شاید بعضی قسمت ها بخوای که ساختار توابع را هم عوض کنی... خواهش می کنم شما یه کمکی بمن بکنید نمخوام که پروژه را انجام بدید آخه یه نفر گفتن این یه ام اف سی می باشد که اگه بخواهیم کد رابط کاربری را به ویندوز فرم تبدیل کنیم خیلی کار می بره وکسی هم حاضر نمیشه انجام بده... اگه کمی وقت گذاشتید آدرس میلتون را بدهید تا برنانمه را براتون میل کنم..


تبدیل کد کار خیلی سختی هست، چون فقط بحث ترجمه یه کد یا الگوریتم از یک زبان به زبان دیگر نیست، بلکه کدی که در یه فرم ورک نوشته شده قراره پورت بشه به یه فریم ورک دیگه که اتفاقا سنخیت زیادی هم با هم ندارن
منم هیچ سر رشته ای در کد ام اف سی رو ندارم که بتونم درک کنم تا بتونم معادلش رو در دات نت طراحی کرده و بنویسم و خیلی از جاها هم کد سی پلاس پلاس ممکنه مستقیما قابل پورت به دات نت نباشه و درک این مسئله نیازمند اینه که هر دو پلتفرم مقصد و مبدا رو خوب بلد باشم ابتدا باید درکی از کلیت ساختار و بعد درکی از ماژول ها و کلاس ها وتوابع و روابط بینشون پیدا کنم ولی نمی دونم چشکلی ...؟؟؟!


باسپاس فراوان

Stanford
یک شنبه 10 شهریور 1392, 08:39 صبح
با سلام؛

برای تبدیل کد MFC به کد CLI.Net شما بایستی طرز کار برنامه رو بدونید، بعد از اون نوبت میرسه به تغییر کد برنامه:

برای تغییر کد برنامه ایجاد یک پروژه جدید راه خوبی نیست چون شما از تکنیک های کوچکی که توی کد استفاده شده خبر ندارید، یک کپی از کد رو ایجاد کنید، برای اینکه بتونید توی محیط CLI کار کنید سعی کنید از VS2010 استفاده نکنید چون این ورژن Intellisense ندارد و شما در کدنویسی دچار مشکل می شوید، سعی کنید از 2008 یا 2012 استفاده کنید، و کم کم از Entry Point برنامه شروع کنید و کد رو به CLI تغییر بدید، با Error های زیادی توی کار مواجه خواهید شد که به مرور زمان حلشون خواهید کرد و خواهید دید که برنامه کلاً به CLI تبدیل شده، این تجربه رو من داشتم و میدونم که سختی هایی داره ولی با پشتکار و صبر و حوصله موفق خواهید شد.

machin11
یک شنبه 10 شهریور 1392, 17:37 عصر
با سلام؛

برای تبدیل کد MFC به کد CLI.Net شما بایستی طرز کار برنامه رو بدونید، بعد از اون نوبت میرسه به تغییر کد برنامه:

برای تغییر کد برنامه ایجاد یک پروژه جدید راه خوبی نیست چون شما از تکنیک های کوچکی که توی کد استفاده شده خبر ندارید، یک کپی از کد رو ایجاد کنید، برای اینکه بتونید توی محیط CLI کار کنید سعی کنید از VS2010 استفاده نکنید چون این ورژن Intellisense ندارد و شما در کدنویسی دچار مشکل می شوید، سعی کنید از 2008 یا 2012 استفاده کنید، و کم کم از Entry Point برنامه شروع کنید و کد رو به CLI تغییر بدید، با Error های زیادی توی کار مواجه خواهید شد که به مرور زمان حلشون خواهید کرد و خواهید دید که برنامه کلاً به CLI تبدیل شده، این تجربه رو من داشتم و میدونم که سختی هایی داره ولی با پشتکار و صبر و حوصله موفق خواهید شد.



برای تبدیل کد MFC به کد CLI.Net شما بایستی طرز کار برنامه رو بدونید، بعد از اون نوبت میرسه به تغییر کد برنام

ayub_coder
سه شنبه 12 شهریور 1392, 21:15 عصر
سوال اینجاست که چرا میخواید ببرید به محیط CLI ؟ مگه MFC نسخه های 2008 یا 2010 چه مشکلی دارن؟ نوشتن برنامه های مبتنی بر دات نت با ++C به گفته ی اساتید کار اشتباهیه. وقتی شما میتونید به صورت Native این کدها رو به کار ببرید چرا بیاید تبدیلش کنید به کد Managed

machin11
سه شنبه 12 شهریور 1392, 21:43 عصر
سلام
نرم افزاری قدیمی از(vC++‎6)به(vC++‎8) می باشد
باید نرمافزار قدیمی به محیط مبتنی بر()جدید انتقال یابد به صورتی که قابلیت رائه امکانات قدیمی حفظ شود.

این خواست استادم هست که این برنامه قابل اجرا در نسخه 2008 باشد بدون خطا اینکه فقط کد را باید اونجا پورت کنم. بعضی کدها قابل تبدیل هست بعضی هم معادلی برای تبدیل نداره

در حقیقت ترکیبی از کدهای نیتیوباکدهای managed میشه.


لینک زیر هم خود برنامه گذاشته شده سورس اصلی

ayub_coder
پنج شنبه 14 شهریور 1392, 10:40 صبح
من پروژه تو توی ویژوال استودیو 2010 باز کردم. چند تا ارور داشت. رفع کردم. الان کامپایل کردم اجرا شد.

machin11
چهارشنبه 03 مهر 1392, 00:20 صبح
لینک جدید پروژه MFC
http://machin11.persiangig.com/Modi8_1.rar/download