AMD>INTEL (31-10-15), M A H R A D (10-11-15), SajjadKhati (08-03-16)
کلا برای تعریف یک شی از کلاس باید از کلمه کلیدی new استفاده کرده. کلاس هایی از نوع Primitive Types از این قاعده مستثنی هستن. چون این نوع متغیر ها فقط داخل خودشون مقداری رو ذخیره می کنن، بدون new میشه تعریف شون کرد. اما تا زمانی که مقدار دهی نشوند، نمیشه ازشون در ادامه ی کد استفاده کرد. مثلا":کلمه ی new دقیقا برای چی هه؟ مثلا چرا باید موقع فراخونی یه کلاس یا ایجاد یه آرایه از new استفاده کرد اما مثلا موقع تعریف متغییر نه؟
کد:int a = 0;
برخی از این متغیر ها تحت عنوان Value Types اگر با new تعریف بشن، مقادیر پیش فرضی به خود می گیرن. مثلا":که باعث میشه با تعریف a مقدارش برابر صفر بشه.کد:int a = new int();
نکته ی جالب اینجاست که شما برای تعریف int به new نیاز ندارید ولی برای تعریف آرایه ای از int ها که یک شی جدید محسوب میشه باید از new استفاده کنید:کد:int[] arr1 = new int[] { 3, 4, 5 };
در کل اگر ما بخواهیم یک متغیر از نوع Bitmap تعریف کنیم نمی تونیم فقط بهش یه مقدار بدیم. در نتیجه با کلمه کلیدی new تعیین می کنیم که این متغیر چقدر طول داره، چقدر عرض داره، پیکسل هاش چند بیتی هستن و غیره. برای اطلاعات بیش تر:
https://msdn.microsoft.com/en-us/library/k6sa6h87.aspx
https://msdn.microsoft.com/en-us/library/fa0ab757.aspx
EnventArgs شامل پارامتر هایی از رویداد رخ داده شده است. مثلا e از نوع EventArgs در رویداد MouseClick شامل مختصات x و y محل کلیک شدن ماوس خواهد بود.نوع آرگومان eventargs ها دقیقا چی ان توی متدهایی که برای رویداد مثلا رویداد click برای کنترل یه دکمه تعریف میشن؟ کارکردش مثل متد extention هست؟ کلا یه کم از کارکردش میخام بدونم
آخرین ویرایش توسط ravegoat در تاریخ 31-10-15 انجام شده است علت: ساختاری
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (31-10-15), M A H R A D (10-11-15), SajjadKhati (08-03-16)
سجاد جان: MSDNبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (31-10-15), SajjadKhati (31-10-15)
خواهش می کنم.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
کد ها به طور پیش فرض در سی شارپ Managed هستن و ابتدا به CLR تبدیل میشن و سپس از طریق .NET Framework به زبان ماشین ترجمه میشن. این طوری مدیریت حافظه بهتر و اجرای کد های خطرناک محدود تر خواهد شد. ولی از طرفی سرعت اجرا کم تر میشه و برای اجرای برنامه در هر سیستم عاملی، دات نت فریم ورک نیازه.
در حالی که در کد Unmanaged برنامه مستقیما به زبان ماشین تبدیل میشه. در این صورت نیازی به دات نت فریم ورک نخواهد بود.
برای گرفتن چنین خروجی ای از سورس تون به پیوند زیر مراجعه کنید:
https://www.nuget.org/packages/UnmanagedExports
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (31-10-15), SajjadKhati (31-10-15)
ممنون گلپسربرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ravegoat برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
من همین کد رو زدم اما ارور میده
یه فایلی نیست که دانلود بشه و درست بشه؟
واقعیت اینه که من میخام از فایل dll ساخته شده در #C ، توی نرم افزار اتوپلی مدیا استودیو فراخوانی کنم اما اتوپلی فقط میتونه تابع رو فراخوانی کنه در صورتی که توی #C باید کد رو در قالب کلاس تعریف کرد
بهم گفتن که مشکل این اتوماتیک با Unmanaged Exports حل میشه . روش کار کردم اما گفتم که ارور داد
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
ُسجاد جان خطاش چیه؟برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
منظورت چیه از این که یک فایلی دانلود و درست بشه؟
این که اتوپلی فقط تابع رو می خونه برام واضح نیست. میشه بیش تر توضیح بدی؟
در کل خروجی گرفتن به این روش ممکنه خیلی خطا بده. این دو تا پیوند رو هم یه نگاهی بهشون بنداز:
https://www.nuget.org/packages/Unman...ports/Download
NuGet Docs
شاد و موفق باشی
آرمینبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
SajjadKhati (01-11-15)
ممنون گلپسر
از همون لینکه رفتم و کد Install-Package UnmanagedExports رو زدم و همینطور که تو عکس مشخصه ، پیام موفقیت آمیز رو داد
اما همونطور که بازم توی عکس مشخصه ، توی خط زرد رنگ نوشته که انگار نمیشه از توی این پروژه از تابع استفاده کرد!
از الان باید چجوری بصورت Unmanaged Exports پروژه درست کنم؟
فقط تابع رو میتونه باهاش ارتباط برقرار کنه مثل پروژه های ++C یا ویژال بیسیک که بصورت تابع نوشته میشن (بصورت کلاس شون نه) اما توی #C حتما باید کلاسی باشه تا تابع یا متد توش قرار بگیره که اتوپلی نمیتونه کلاس رو فراخونی کنه
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
خواهش می کنم سجاد جان...
بی زحمت پلتفرم کامپایلت رو از Any Cpu به x86 یا x64 تغییر بده، شاید مشکل حل بشه. روند انجامش در زیر اومده:
https://msdn.microsoft.com/en-us/library/ms185328.aspx
در سی شارپ توابع داخل کلاس رو به صورت static تعریف کن، بعد بررسی کن که آیا ساختارش مثل C++ و VB6 میشه داخل اتوپلی یا خیر؟
موفق باشی
آرمین
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
SajjadKhati (01-11-15)
یکی گفت علاوه بر اینا ، AMS با دات نت فریم ورذک 2 یا 3 کار میکنهبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ravegoat برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
روی دات نت 3 گذاشتم و روی x64 گذاشتم اما ارور زیر میده :
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
|
سجاد جان target هر دو پروژه ی ClassLibrary1 و WindowsFormApplication1 باید عین هم باشه. اگه این طوره، هر دو پروژه رو روی پلتفرم 32 بیتی بذار و مجدد امتحان کن.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (02-11-15), SajjadKhati (02-11-15)
ممنون اوستا آرمین
آقا من توی پروژه ی dll ای که بصورت unmanaged درست کردم با X86 (ویندوز من ولی X64 هه . ربطی به این داره؟) ، یک کلاس و ... نوشتم :
توی یه پروژه ی دیگه (پروژه ی Form دار) لود میکنم که اینم Unmanaged هست و هر دو X86 ، و ازش شی میسازم به شرح زیر :کد:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Threading.Tasks; using System.Text; using System.IO; namespace ClassLibrary1 { public class Class1 { public Class1() { } public static void DelNew(string b) { File.Delete(b); } } }
تابع یا متد DelNew رو نمیتونه بشناسه . یعنی مینویسم FileDel بعدش نقطه که میزارم ، DelNew رو توی لیست نمیاره . چرا؟کد:Class1 FileDel = new Class1();
حتی اون متد DelNew رو بصورت static تعریف کردم که بدون ایجاد شی هم باید فراخونی میشد که این جوری هم نمیشه!
یه کم سریع تر جواب میدین؟
آخرین ویرایش توسط SajjadKhati در تاریخ 10-11-15 انجام شده است
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks