آقایون کامپایلری میشناسید که بدون CLR فایل exe بده؟؟؟ یعنی نیازی به dotnetframework تو کامپیوتر مقصد نباشه؟؟؟
Printable View
آقایون کامپایلری میشناسید که بدون CLR فایل exe بده؟؟؟ یعنی نیازی به dotnetframework تو کامپیوتر مقصد نباشه؟؟؟
سلام.
فكر مي كنم در حال حاضر براي #C دو compiler شاخص وجود داره.
اولي كه compiler مايكروسافت هست كه نياز به Net. داره.
دومي هم به نام MCS و جديدترش GMCS كه از شركت Mono هست.كه از Mono runtime استفاده ميكنه.
( چيزي شبيه Net.) البته Net. روٍ Support ميكنه.
مي تونيد دربارش تحقيق كنيد.
در ضمن در اين forum مطالب جامعي در باره #C تحت عنوان آموزش #C وجود داره . نگاهي به تاريخچه #C بكنيد.
مرسي - غير رسمي كامپايلري نيست؟ از كمپاني هاي شخص ثالث؟
فكر مي كنم اين مشكل شما رو حل كنه.
يه نگاهي به اين PDF بكنيد.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
از Link زير هم ميتونيد download كنيدش.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
همين طور اين سايت:نقل قول:
It is the only IDE that includes support for C#, C, C++ and Delphi (both Windows and .NET) applications within a single environment
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مي تونم بپرسم كه چرا چنين سئوالي مطرح كرديد؟
آيا فقط مشكل اين هست كه چون برنامتون رو تحت Net. نوشتيد,روي client هم نياز داريد كه Net Frameword. وجود داشته باشه؟
يا كلا دنبال موضوع ديگه اي هستيد.
ممنون.
------------->
دلیلش اینه که من یه کد 15 کیلو بایتی نوشتم که یه جور آنتی-آنتی ویروسه!!نقل قول:
نوشته شده توسط someone
یعنی آنتی ویروسارو تو کامپیوتر مقصد می بنده. حالا نمی خوام برای یه برنامهی 15 کیلو بایتی
یه CLR با حجم 20 مگ احتیاج به نصب داشته باشه.
اینم لینک فایل exe اگه میخوای دانلود کن ببین. ولی این با ویژوال بیسیک کامپایل شده.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
من هم مشكل شما رو داشتم ولي ببين اگه بتوني با ويژوال بيسيك بنويسي راحت تر هستي
با سي شارپ پروژه هاي بزرگتر رو بسازي
نميدونم بگم عيب مزيت چي هست
مي تونم بپرسم كه برنامتون رو كلاسيك نوشتيد يا اينكه از توابع يا كلاس هاي Net. استفاده كرديد؟
از کلاسا استفاده کردم، کار جالبی بود. یه کم فکر کنید ببینید میتونید الگوریتمشو در بیارید، اگه نتونستید بگید تا براتون توضیح بدم!!!نقل قول:
نوشته شده توسط someone
سلام دوست عزيز.
روش هاي مختلفي براي اين كار وجود داره.
مثلا استفاده از WMI كه خلاصه ي Windows Management Instrumentation هست.
يا اينكه كافي از ليست process هاي در حال اجرا Snapshot گرفته بشه و ID يا Module يا اسم اون آنتي رو داشته باشيد و اون رو terminate كنيد.در بعضي موارد بعداز terminate شدن, يك dialogbox از كاربر مي پرسه كه ميخوايد
آنتي رو غير فعال كنيد يا نه.كافي handle اين پنجره گرفته شه و Focus روي اون عوض بشه.
يا روش هاي ديگه.
من منظورم اين بود كه اگه از كلاسهاي Net. استفاده ميكنيد ناگزيريد كه يا برنامتون بعضي Dll ها رو همراه خودش داشته باشه يا اينكه روي client بايد اين platform وجود داشته باشه.
همین روشی که گفتی درسته ولی نیازی به اسم تسک نداری!! یه if ساده مشکلو حل میکنه. اگخ user پروسس system بود که هیچی. اگه نبود terminate کنش!!
ولی به نطر من منطقی نمیاد، سی شارپ به این قدرتمندی کامپایلر مستقیم بدون واسط clr براش نیست؟!!!
ميتونيد از كامپايلر Borland استفاده كنيد.
میشه لینک بدی؟؟نقل قول:
نوشته شده توسط someone
توضيحاتش:نقل قول:
نوشته شده توسط Blacklord
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
كامپايلر:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بابا دمت گرم این که 250 مگه!!
کامپایلر بورلند هم دات نت فریم ورک رو می خواد اصلا سی شارپ بدون دات نت فریم ورک بی معنیه
وقتی شما از اونهمه کلاس استفاده می کنید بعد حجم برنامه تون می شه 15 کیلو اصلا تعجب نکردید؟
اگه همین برنامه رو با ویژوال سی می نوشتید بیش از چند صد مگ بود و اگه با دلفی یا سی ++ بیلدر شاید به بیش از یک مگ هم می رسید برای اینکه در این زبان ها تمام کلاس ها مورد استفاده کد هاش در برنامه ادغام می شه ولی وقتی از یکی از اعضا دات نت مثل سی شارپ استفاده می کنید کد ها در دات نت فریم ورک می مونه و در زمان کامپایل نهایی یعنی زمان اجرا به برنامه الصاق می شه پس لازمه که دات فریم ورک باشه در ضمن کد های دات نت کاملا کامپایل نمی شن بلکه مثل جاوا به یه نوع کد زبان ماشین مجازی(il) تبدیل می شن که برای اجرا به همین ماشین مجازی نیاز دارن ابن ماشین مجازی همو دات نت فریم ورک هست اگه خیلی به حجم برنامه اهمیت می دید باید برید سراغ ویژوال سی
من متوجه توضيح شما نشدم.البته از لحاظ ارتباط با سئوال.نقل قول:
نوشته شده توسط arash_j13
وقتي شما مثلا Manage Cpp مينويسيد مجبوريد از كلاس هاي Net. استفاده كنيد.ولي در صورت استفاده Unmanage Cpp نيازي به استفاده از كلاسهاي Net. نداريد. همين طور در مورد #C .
#C در انحصار microsoft نيست كه براي كار با اون لزوما نياز به Netframework. باشه. در ضمن با اين اين جمله شما موافق نيستم.اگه همین برنامه رو با ویژوال سی می نوشتید بیش از چند صد مگ بود
دليلش هم اين هست كه كلا اين نوع برنامه ها از API ويندوز استفاده ميكن و دليلي نداره حجم برنامه بالا بره.به همون دليلي كه گفتيد. اكثر اين توابع موجود در kernel32.dll يا user32.dll يا...هستند و به عنوان يه dll در كنار برنامه ي شما قرار ميگيرن و تا هنگام اجراي برنامه به فايل exe مورد نظر link نميشن.
ممنون.
ربطی نداره!! اینی که گذاشتم با vb هست، 16k هم بیشتر نیست!!!