PDA

نسخه کامل مشاهده نسخه کامل : کامپایلر های #C بدون نیاز به Net.



Blacklord
20-08-2006, 05:30
آقایون کامپایلری میشناسید که بدون CLR فایل exe بده؟؟؟ یعنی نیازی به dotnetframework تو کامپیوتر مقصد نباشه؟؟؟

someone
20-08-2006, 09:44
سلام.
فكر مي كنم در حال حاضر براي #C دو compiler شاخص وجود داره.
اولي كه compiler مايكروسافت هست كه نياز به Net. داره.
دومي هم به نام MCS و جديدترش GMCS كه از شركت Mono هست.كه از Mono runtime استفاده ميكنه.
( چيزي شبيه Net.) البته Net. روٍ Support ميكنه.
مي تونيد دربارش تحقيق كنيد.
در ضمن در اين forum مطالب جامعي در باره #C تحت عنوان آموزش #C وجود داره . نگاهي به تاريخچه #C بكنيد.

Blacklord
20-08-2006, 13:49
مرسي - غير رسمي كامپايلري نيست؟ از كمپاني هاي شخص ثالث؟

someone
20-08-2006, 22:46
فكر مي كنم اين مشكل شما رو حل كنه.
يه نگاهي به اين 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. وجود داشته باشه؟
يا كلا دنبال موضوع ديگه اي هستيد.
ممنون.

someone
20-08-2006, 22:55
------------->

Blacklord
21-08-2006, 06:24
------------->
دلیلش اینه که من یه کد 15 کیلو بایتی نوشتم که یه جور آنتی-آنتی ویروسه!!
یعنی آنتی ویروسارو تو کامپیوتر مقصد می بنده. حالا نمی خوام برای یه برنامهی 15 کیلو بایتی
یه CLR با حجم 20 مگ احتیاج به نصب داشته باشه.
اینم لینک فایل exe اگه میخوای دانلود کن ببین. ولی این با ویژوال بیسیک کامپایل شده.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

SCC
21-08-2006, 06:54
من هم مشكل شما رو داشتم ولي ببين اگه بتوني با ويژوال بيسيك بنويسي راحت تر هستي
با سي شارپ پروژه هاي بزرگتر رو بسازي

نميدونم بگم عيب مزيت چي هست

someone
22-08-2006, 00:57
مي تونم بپرسم كه برنامتون رو كلاسيك نوشتيد يا اينكه از توابع يا كلاس هاي Net. استفاده كرديد؟

Blacklord
22-08-2006, 04:50
مي تونم بپرسم كه برنامتون رو كلاسيك نوشتيد يا اينكه از توابع يا كلاس هاي Net. استفاده كرديد؟

از کلاسا استفاده کردم، کار جالبی بود. یه کم فکر کنید ببینید میتونید الگوریتمشو در بیارید، اگه نتونستید بگید تا براتون توضیح بدم!!!

someone
22-08-2006, 13:17
سلام دوست عزيز.
روش هاي مختلفي براي اين كار وجود داره.
مثلا استفاده از WMI كه خلاصه ي Windows Management Instrumentation هست.
يا اينكه كافي از ليست process هاي در حال اجرا Snapshot گرفته بشه و ID يا Module يا اسم اون آنتي رو داشته باشيد و اون رو terminate كنيد.در بعضي موارد بعداز terminate شدن, يك dialogbox از كاربر مي پرسه كه ميخوايد
آنتي رو غير فعال كنيد يا نه.كافي handle اين پنجره گرفته شه و Focus روي اون عوض بشه.
يا روش هاي ديگه.
من منظورم اين بود كه اگه از كلاسهاي Net. استفاده ميكنيد ناگزيريد كه يا برنامتون بعضي Dll ها رو همراه خودش داشته باشه يا اينكه روي client بايد اين platform وجود داشته باشه.

Blacklord
23-08-2006, 07:03
همین روشی که گفتی درسته ولی نیازی به اسم تسک نداری!! یه if ساده مشکلو حل میکنه. اگخ user پروسس system بود که هیچی. اگه نبود terminate کنش!!
ولی به نطر من منطقی نمیاد، سی شارپ به این قدرتمندی کامپایلر مستقیم بدون واسط clr براش نیست؟!!!

someone
23-08-2006, 09:11
ميتونيد از كامپايلر Borland استفاده كنيد.

Blacklord
23-08-2006, 10:58
ميتونيد از كامپايلر Borland استفاده كنيد.
میشه لینک بدی؟؟

someone
23-08-2006, 15:05
میشه لینک بدی؟؟

توضيحاتش:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
كامپايلر:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Blacklord
30-08-2006, 19:25
بابا دمت گرم این که 250 مگه!!

arash_j13
01-09-2006, 00:54
کامپایلر بورلند هم دات نت فریم ورک رو می خواد اصلا سی شارپ بدون دات نت فریم ورک بی معنیه
وقتی شما از اونهمه کلاس استفاده می کنید بعد حجم برنامه تون می شه 15 کیلو اصلا تعجب نکردید؟
اگه همین برنامه رو با ویژوال سی می نوشتید بیش از چند صد مگ بود و اگه با دلفی یا سی ++ بیلدر شاید به بیش از یک مگ هم می رسید برای اینکه در این زبان ها تمام کلاس ها مورد استفاده کد هاش در برنامه ادغام می شه ولی وقتی از یکی از اعضا دات نت مثل سی شارپ استفاده می کنید کد ها در دات نت فریم ورک می مونه و در زمان کامپایل نهایی یعنی زمان اجرا به برنامه الصاق می شه پس لازمه که دات فریم ورک باشه در ضمن کد های دات نت کاملا کامپایل نمی شن بلکه مثل جاوا به یه نوع کد زبان ماشین مجازی(il) تبدیل می شن که برای اجرا به همین ماشین مجازی نیاز دارن ابن ماشین مجازی همو دات نت فریم ورک هست اگه خیلی به حجم برنامه اهمیت می دید باید برید سراغ ویژوال سی

someone
01-09-2006, 01:33
کامپایلر بورلند هم دات نت فریم ورک رو می خواد اصلا سی شارپ بدون دات نت فریم ورک بی معنیه
وقتی شما از اونهمه کلاس استفاده می کنید بعد حجم برنامه تون می شه 15 کیلو اصلا تعجب نکردید؟
اگه همین برنامه رو با ویژوال سی می نوشتید بیش از چند صد مگ بود و اگه با دلفی یا سی ++ بیلدر شاید به بیش از یک مگ هم می رسید برای اینکه در این زبان ها تمام کلاس ها مورد استفاده کد هاش در برنامه ادغام می شه ولی وقتی از یکی از اعضا دات نت مثل سی شارپ استفاده می کنید کد ها در دات نت فریم ورک می مونه و در زمان کامپایل نهایی یعنی زمان اجرا به برنامه الصاق می شه پس لازمه که دات فریم ورک باشه در ضمن کد های دات نت کاملا کامپایل نمی شن بلکه مثل جاوا به یه نوع کد زبان ماشین مجازی(il) تبدیل می شن که برای اجرا به همین ماشین مجازی نیاز دارن ابن ماشین مجازی همو دات نت فریم ورک هست اگه خیلی به حجم برنامه اهمیت می دید باید برید سراغ ویژوال سی

من متوجه توضيح شما نشدم.البته از لحاظ ارتباط با سئوال.
وقتي شما مثلا Manage Cpp مينويسيد مجبوريد از كلاس هاي Net. استفاده كنيد.ولي در صورت استفاده Unmanage Cpp نيازي به استفاده از كلاسهاي Net. نداريد. همين طور در مورد #C .
#C در انحصار microsoft نيست كه براي كار با اون لزوما نياز به Netframework. باشه. در ضمن با اين اين جمله شما موافق نيستم.اگه همین برنامه رو با ویژوال سی می نوشتید بیش از چند صد مگ بود
دليلش هم اين هست كه كلا اين نوع برنامه ها از API ويندوز استفاده ميكن و دليلي نداره حجم برنامه بالا بره.به همون دليلي كه گفتيد. اكثر اين توابع موجود در kernel32.dll يا user32.dll يا...هستند و به عنوان يه dll در كنار برنامه ي شما قرار ميگيرن و تا هنگام اجراي برنامه به فايل exe مورد نظر link نميشن.
ممنون.

Blacklord
01-09-2006, 02:05
ربطی نداره!! اینی که گذاشتم با vb هست، 16k هم بیشتر نیست!!!