PDA

View Full Version : نميتونم متد main برنامه رو تغيير بدم !



cazino86
چهارشنبه 26 آبان 1389, 11:48 صبح
سلام...

من ويندوز xp sp2 + vs 2008 نصب كردم . وقتي متد main رو كه در فايل app.gs.c قرار داره تغيير ميدم و برنتمه رو بيلد ميكنم همه تغييراتي كه در اين متد انجام دادم به حالت قبلش برميگرده !

روي سيستمي كه ويندوز سون روش نصب بود + vs2008 تست كردم اين مشكل رو نداشت !

چند وقت پيش برنامه اي رو ديدم كه فايل app.xaml رو از تو برنامه پاك كرده و يه كلاس به نام app.cs تو برنامه گذاشته . اين كلاس از كلاس application مشتق ميشه .

در داخلش متد main رو دوباره باز نويسي كرده و تغييرات مورد دلخواه خودشو اعمال كرده . در داخل فايل ...gs.c كه تو پوشه obj قرار داره متد main وجود نداره !

برنامه بدون هيچ مشكلي اجرا ميشه و متد main رو از كلاس app.cs ميخونه. منم يه برنامه درست كردم.

توش فايل app.xaml رو از برنامه حذف كردم و به جاش كلاس app.cs رو ايجاد كردم و تغييرات خودمو اعمال كردم . برنامه هم اجرا شد و هيچ مشكلي نداشتم .

اما وقتي كه خواستم تو برنامه ديگه اي از اين روش استفاده كنم ديدم كه تو فايل app.xaml چند تا ريسورس ديكشنري دارم كه نميتونم اين فايل رو از برنامه حذف كنم . موندم حالا بايد چي كار كنم ؟

رضا عربلو
چهارشنبه 26 آبان 1389, 13:56 عصر
فایل app.gs.c که در پوشه obj درست می شود توسط کامپایلر درست می شود و تغییر در اون هیچ تاثیری در برنامه تون ندارد در واقع هروقتی که یک پروژه را Build می کنید این فایل ها دوباره نویسی می شوند.

اگر به داخل فایل app.xaml نگاه کنی


<Application x:Class="WPFAplication1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>

</Application.Resources>
</Application>

که StartupUri آدرس پنجره اصلی برنامه را در خود دارد.
همچنین می توانید از event های کلاس application استفاده کنید. به عنوان مثال Application.Startup
در واقع به برنامه های wpf هماند برنامه های Win forms نگاه نکنید و دنبال متد main توش نباشید. کار متد main را Application.Startup انجام می دهد.
http://msdn.microsoft.com/en-us/library/system.windows.application.startup.aspx