نمایش نتایج 1 تا 23 از 23

نام تاپیک: اموزش استفاده از UnmanagedDLL

  1. #1
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Lightbulb اموزش استفاده از UnmanagedDLL

    سلام
    من چند وقت پیشها دستم رسید , که باید با استفاده از اون با دستگاهی ارتباط برقرار میکردم!
    من سایت های زیادی رو گشتم اما جواب درستی نگرفتم در آخر ازمون خطا به جوابم رسیدم !
    من خودم رو آپ کردم که روش استفاده و فراخوانی رو یاد بگیریم در حقیقت نمیشه ازش استفاده کرد بدون دستگاه !
    این لینک هم برای شروع کار , کلیات رو داره !
    http://en.csharp-online.net/CSharp_F...ort_to_work%3F
    باسپاس
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Smile

    یک برنامه خوب برای Dll ها میتونید هدر, مسیر و..... رو چک کنید !
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    میشه در مورد اون دستگاه توضیح بدی (بیشتر واسه اطلاعات عمومی)
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  4. #4
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Smile

    سلام
    این دستگاه کارت ریدر میباشد ContactLess,Smart.... البته دستگاه خوبی نیست , چینی و مشکلات خودش رو داره , من باید بتونم کارت و بخونم و رایت کنم !
    از پورت USB استفاده میکنه و یک درایور کوچیک داره !
    دوستان در کنار آموزش این موضوع من سورس کد نهایی برنامه رو در آخر آپ می کنم که یه مثال کامل داشته باشیم !
    باسپاس
    آخرین ویرایش به وسیله silentrise : یک شنبه 11 فروردین 1387 در 11:51 صبح

  5. #5
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Post

    سلام
    دوستان در عکس ضمیمه ساختار کلی این کارو نشان داده شده !
    اگه از این سوالی داشتین , لطف کنید بپرسید !
    با سپاس
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 001.JPG‏ (14.8 کیلوبایت, 41 دیدار)

  6. #6
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Post

    سلام
    در این پست نمونه ساده از یک Wrapper داریم :

    تابع درونDLL با مشخصات :
    BOOL WINAPI ConnectionUSBDevice(void
    return:
    true: Open USB port Success
    False:Open USB port Error

    کدی که درون کلاس باید نوشته شود :


    static class Wrapper
    {
    [DllImport("HYMifare.dll")]
    private static extern bool ConnectionUSBDevice();

    public static bool OpenDevice()
    {
    return ConnectionUSBDevice();
    }
    }
    فضای نام :

    using System.Runtime.InteropServices;
    طریقه استفاده درون برنامه :

    bool isopen;
    isopen = Wrapper.OpenDevice();
    اگر سوالی در رابطه با کد داشتین بپرسین !
    من توضیح ندادم که سوال بفرمایید !
    باسپاس

  7. #7
    میشه پروژه رو ضمیمه کنی اینطوری یکم گنگه (البته واسه من که ضریب هوشیم یکم پایینه )
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  8. #8
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Smile

    نقل قول نوشته شده توسط razavi_university مشاهده تاپیک
    میشه پروژه رو ضمیمه کنی اینطوری یکم گنگه (البته واسه من که ضریب هوشیم یکم پایینه )
    سلام
    دوست عزیز کلا این موضوع گنگه , یه خورده پروژه نا مرتب به همین دلیل اجازه بدید دیرتر آپ کنم !
    چون در اون صورت سوالات جانبی بیشتر میشه ! سعی میکنم تو همین چند روز مرتب کنم ! و بعد آپ بشه که من شرمنده نشم !
    با سپاس از پیگیری دوستان

  9. #9
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Smile

    سلام
    امشب تو گشت و گذارم تو اینترنت به موضوع جالب و مربوط به تاپیک برخوردم !
    در لینک زیر مسله تعریف شده که قسمت استفاده از DLL برای ما مهم ! UnmanagedDLL
    می باشد!
    http://www.codeproject.com/KB/cs/csp...00#xx2492700xx
    باسپاس

  10. #10
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Exclamation

    سلام
    من خودم سوال دارم ؟
    در DotNetPlatform بیس همه چیز Object است ! ؟
    در سی و سی پ پ و .... بیس , پوینترهاست ؟
    ممنون میشم که در فهم این موضوع کمکم کنید !
    باسپاس

  11. #11
    فکر کنم توی مقاله‌ای که ترجمه کردم در ای مورد بحث شده
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62

    snaazy

    you can get the answer by following:
    در این مقاله می خوام در مورد Dll هایی صحبت بکنم که به زبان های برنامه نویسی قدیمی نوشته شده اند.واقعیت اینه که من زیاد حال و حوصله نوشتن ندارم ولی چون امروز حال دارم و یه خورده بیکارم ،این مقاله رو می نویسم البته از همین اول بگم که شاید وسطش حال نداشته باشم و بیخیال نوشتن بشم.دیگه ببخشید.
    .................................................. .................................................. .................................
    ابتدا یه پیش توضیحات و مقدماتی نیاز هست که بتونین بیان توی باغ .خب Dll ها یی که شما توی دات نت می سازید همگی managed محسوب می شوند و اگه بخواین که از اون dll ها توی مثلا یه زبان دیگه برنامه نویسی توی دات نت استفاده کنید خیلی راحت اول از solution explorer روی Reference راست کلیک می کنید و از tab اِ Browse اون dll تون رو پیدا می کنید و کار تمومه.بعدش هم برای استفاده توی برنامتون کافیه یه using yourDllName به بخش usingها اضافه کنید.(توجه:بجای yourDllName باید اون dllتون رو بنویسید-از این توضیح کاملتر دیگه یافت نمی شه!).

    خب حالا دیگه می تونید از اون متد ها و property و فیلدها ی توی dll تون استفاده کنید.خب این کار برای dll های به اصطلاح managed شده جواب میده،اومدیم و خواستین از یه dll قدیمی ای که توی VB 6 یا توی C نوشته شده استفاده کنید اونوقت اگه کار های قبلی رو ادامه بدین مثل خر توی گل می مونید پس این کار رو نکنید .(به حرفم گوش کنین به نفعتونه).خب چی کار باید کرد؟

    این جاست که باید اول در مورد unamanaged code بحرفم.به کد هایی که با .net نوشته نشدن unamanaged code گویند.این dll های قدیمی هم پس معمولند که unamanaged code هستند.OK.حالا یه خبر خوب دات نت به شما امکان استفاده از اون dll ها رو هم میده.چه جوری؟
    خیلی راحت باید از ساختار زیر استفاده کنین:

    DllImport ("yourOldDLL.dll",CallingConvention=CallingConv ent ion.Cdecl, EntryPoint="MethodNameInOldDll",CharSet=CharSet.An si)"

    public static extern int MyMethodInDotNet(int nComType, [MarshalAs(UnmanagedType.LPStr)] String Param);
    خب حالا فک کنم وقتشه دیگه بیخیال نوشتن بشم
    نه بابا نترسین توضیح کد بالا رو میدم:
    DllImport برای افزودن یه dll هست که unamanaged نوشته شده.yourOldDLL.dll هم اسم اون dll قدیمیه هست که می خواین وارد برنامتون کنین.CallingConvention هم مربوط به ساختاری داره که کامپایلر مربوط به اون dll اونو compile کرده.اگه dll شما به زبان C نوشته شده باید بدنین که calling conventionیی که کامپایلرش بکار می بره Cdecl هست(پس گیج نزنین که این Cdecl دیگه چیه اگه وقت کردم یه تاپیک جامع در مورد calling convention می زارم(از "ز" یی که توی می زارم گذاستم ایراد نگیرید)).اگه از یه win api استفاده می خواین بکنین از stdcall استفاده کنین بجای Cdeclتوی کد بالا.خب دیگه چی مونده آهان EntryPoint .جلوی این قسمت که نوشتم MethodNameInOldDll مشخص می کنه آقا اسم فرضا متدی که توی dll هست و من می خوام از اون استفاده کنم MethodNameInOldDll هست.CharSet هم میگه که این متد توی dll من اگه Ansi باشه دیگه فارسی نویسی باید بیخیال شیم.(نقطه بریم سر خط)

  13. #13
    نقل قول نوشته شده توسط mosini مشاهده تاپیک
    you can get the answer by following:
    در این مقاله می خوام در مورد Dll هایی صحبت بکنم که به زبان های برنامه نویسی قدیمی نوشته شده اند.واقعیت اینه که من زیاد حال و حوصله نوشتن ندارم ولی چون امروز حال دارم و یه خورده بیکارم ،این مقاله رو می نویسم البته از همین اول بگم که شاید وسطش حال نداشته باشم و بیخیال نوشتن بشم.دیگه ببخشید.
    دوست عزیز این چند خط که مقاله حساب نمیشه، حداقل چند صفحه‌ای بنویس
    البته در رابطه با حالت مدیرت نشده(Unmanaged) و مشکلاتی که در کار با انها در محیط مدیریت شده پیدا می‌کنید در مقاله ی که چند وقت پیش گذاشتم بحث شده.
    این توضیحات را واسه این گفتم که اگه قصد ترجمه و یا نوشتن مقاله‌ای را دارید بتونین از اون استفاده کنین و کار دوباره انجام ندین
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62
    عجب،آقای رضوی به خاطر تشویق هاتون ممنونم
    بگذریم.در مورد استفاده از unmanaged در managed --environment بحث بسیار است که باور کنید وقت ندارم همش رو بگم.در مورد Calling Convention و Entry Point و Exact Spelling هم بحث میشه.بگزریم فقط اینو بگم که اگه در محیط managed بخواین که نام مستعار برای اون dll یی که متد قدیمیه توش هست بیارین باید حتما از attribute اِ Entry Point استفاده کنید.Calling convention بر اساس دانش من یعنی چگونه پارامتر های یک متد به stack ارسال بشه , همچنین چه جوری stack خالی بشه.در واقع وقتی compiler سی شارپ می خواد که کد unmanaged را اجرا کنه اگه شما calling convention ننویسید ممکنه که به خطابر بخورین،ببینید گفتم ممکنه نه همیشه،ولی اگه می خواهید که حتما برنامتون درست عمل کنه از calling convention استفاده کنین و در این حالت compiler می دونه که چه جوری باید پارامتر ها رو ارسال کنه و stack رو خالی کنه.حالا می خواستم از دوستانی که فکر می کنن من مطالبم رو از جایی ترجمه می کنم خواهش کنم متن اصلی اون کتاب رو بیارن.قابل توجه رضوی
    ---------------------------------------------------------------------------------------------------
    Try Not To Put Your Works For the Day After,FIRST THINGS FIRST
    kabi upna kam ko dusra din nahi keho,peyla kam peyla

  15. #15
    دوست عزیز اشتباه برداشت کردی
    قصد من کم ارزش کردن کار شما نبود بلکه کمک به ارائه مطالب جدیدتر بود.
    اگر باعث رنجش شما شدم واقعا معذرت می‌خوام
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  16. #16
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62

    your wellcome

    خواهش می کنم.any way the life is short,be cool!

  17. #17
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62

    object orientation and structured orientation

    خب در مورد این که بیس همه چیز در #C شی است،شک نکن.شما کلا هر برنامه ای که می نویسی مجبوری از یه کلاس استفاده کنی.اینو بگم که مفهوم شی و کلاس ،درواقع جدا از هم نسیت.شی در واقع موجود جانداری است از کلاس بی جان خودش.یعنی یه کلاس در واقع ساختار کلی هست و شی نمود کاری آن در برنامه است.در واقع شما از طریق کلاس می تونی دسته بندی انجام بدی.همین.کلا دلیل بوجود اومدن متد و کلاس و namespace همین بوده.قبل ها که کلاس و شی استفاده نمی شد، شما با انبوهی از متغیر ها و توابع و پارامترها و نوع های بازگشتی سر و کار داشتی که به عبارتی پدرت در میومد تا بخواهی دید کلی روی برنامت داشته باشی،ولی حالا با #C خیلی راحت برای اون چیز هایی که به هم مرتبط می یای کلاس تعریف میکنی و چیزی که باهاش درگیر می شی تعداد زیادی شی از اون کلاس هاست.با این روش دستیابی به اون چیزی که می خوای خیلی راحت میشه.امیدوارم تونسته باشم کمکت کرده باشم .

  18. #18
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62
    نقل قول نوشته شده توسط silentrise مشاهده تاپیک
    سلام
    من خودم سوال دارم ؟
    در DotNetPlatform بیس همه چیز Object است ! ؟
    در سی و سی پ پ و .... بیس , پوینترهاست ؟
    ممنون میشم که در فهم این موضوع کمکم کنید !
    باسپاس
    خب در مورد این که بیس همه چیز در #C شی است،شک نکن.شما کلا هر برنامه ای که می نویسی مجبوری از یه کلاس استفاده کنی.اینو بگم که مفهوم شی و کلاس ،درواقع جدا از هم نسیت.شی در واقع موجود جانداری است از کلاس بی جان خودش.یعنی یه کلاس در واقع ساختار کلی هست و شی نمود کاری آن در برنامه است.در واقع شما از طریق کلاس می تونی دسته بندی انجام بدی.همین.کلا دلیل بوجود اومدن متد و کلاس و namespace همین بوده.قبل ها که کلاس و شی استفاده نمی شد، شما با انبوهی از متغیر ها و توابع و پارامترها و نوع های بازگشتی سر و کار داشتی که به عبارتی پدرت در میومد تا بخواهی دید کلی روی برنامت داشته باشی،ولی حالا با #C خیلی راحت برای اون چیز هایی که به هم مرتبط می یای کلاس تعریف میکنی و چیزی که باهاش درگیر می شی تعداد زیادی شی از اون کلاس هاست.با این روش دستیابی به اون چیزی که می خوای خیلی راحت میشه.امیدوارم تونسته باشم کمکت کرده باشم .

  19. #19
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    62
    نقل قول نوشته شده توسط silentrise مشاهده تاپیک
    سلام
    من خودم سوال دارم ؟
    در DotNetPlatform بیس همه چیز Object است ! ؟
    در سی و سی پ پ و .... بیس , پوینترهاست ؟
    ممنون میشم که در فهم این موضوع کمکم کنید !
    باسپاس
    خب در مورد این که بیس همه چیز در #C شی است،شک نکن.شما کلا هر برنامه ای که می نویسی مجبوری از یه کلاس استفاده کنی.اینو بگم که مفهوم شی و کلاس ،درواقع جدا از هم نسیت.شی در واقع موجود جانداری است از کلاس بی جان خودش.یعنی یه کلاس در واقع ساختار کلی هست و شی نمود کاری آن در برنامه است.در واقع شما از طریق کلاس می تونی دسته بندی انجام بدی.همین.کلا دلیل بوجود اومدن متد و کلاس و namespace همین بوده.قبل ها که کلاس و شی استفاده نمی شد، شما با انبوهی از متغیر ها و توابع و پارامترها و نوع های بازگشتی سر و کار داشتی که به عبارتی پدرت در میومد تا بخواهی دید کلی روی برنامت داشته باشی،ولی حالا با #C خیلی راحت برای اون چیز هایی که به هم مرتبط می یای کلاس تعریف میکنی و چیزی که باهاش درگیر می شی تعداد زیادی شی از اون کلاس هاست.با این روش دستیابی به اون چیزی که می خوای خیلی راحت میشه.امیدوارم تونسته باشم کمکت کرده باشم .

  20. #20

    استفاده از Unmanaged DLL نامشخص

    سلام به همگی!
    من یک Unmanaged DLL دارم که درواقع درایور یک دستگاه است که با استفاده از پورت سریال به کامپیوتر وصل می شود. میخوام با این دستگاه با استفاده از C#‎ ارتباط برقرار کنم.
    اما مشکل اینه که من نمی دونم که متدهاش چیه.
    آیا اصلا می تونم از این dll استفاده کنم؟
    اگه امکانش هست چه جوری؟

  21. #21
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147
    نقل قول نوشته شده توسط mjzamani مشاهده تاپیک
    سلام به همگی!
    من یک Unmanaged DLL دارم که درواقع درایور یک دستگاه است که با استفاده از پورت سریال به کامپیوتر وصل می شود. میخوام با این دستگاه با استفاده از C#‎ ارتباط برقرار کنم.
    اما مشکل اینه که من نمی دونم که متدهاش چیه.
    آیا اصلا می تونم از این dll استفاده کنم؟
    اگه امکانش هست چه جوری؟
    دوست عزیز پست 5 و 6 رو نگاه کن !

  22. #22

    خطا در مورد Pointer

    درسته من همین کار رو انجام دادم!
    امّا مسئله ای که هست اینه که تابعی که من می خوام باهاش کار کنم، پارامتر پوینتر می گیره.
    زمانی که من می خوام اونا فراخونی کنم توی C#‎.net خطای استفاده از حافظه و یه چیزی شبیه به این رو میده.
    اگه بتونید کمکم کنید ممنون می شم.

  23. #23
    کاربر دائمی آواتار silentrise
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Tehran
    پست
    147

    Lightbulb نقل قول: اموزش استفاده از UnmanagedDLL

    سلام
    بعد از N وقت اومدم !
    دوست عزیز این واسه شروع کد زدن پوینتر !
    اگه سوالی داری در خدمتم !
    با سپاس
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.JPG‏ (52.0 کیلوبایت, 17 دیدار)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •