تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 5 از 5

نام تاپيک: نحوه استفاده از Api در #C

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2006
    پست ها
    7

    پيش فرض نحوه استفاده از Api در #C

    مي خوام از WinInet.dll براي ساخت connection استفاده كنم ولي نه بلدم چطور از API ها استفاده كنم و نمي دونم كلا بايد چكار كنم .
    اگر كسي برنامه كوچكي داره كه به يك شماره تلفن connect بشه ممنون ميشم اگر در اختيارم بزاره.
    اگر راه ديگري هم براي اتصال وجود داره بم معرفي كنيد.
    Last edited by ramkly; 24-02-2007 at 10:04.

  2. #2
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.
    برای استفاده از unmanage operatins در Net. سه روش وجود داره. برای استفاده از API ها و کلا فراخوانی
    یک تابع از یک Dll از Platform Invoke استفاده میشه.
    برای call کردن یک Dll در #C و استفاده از Method مورد نظر از DllImport استفاده میشه. در نظر داشته باشید که اسم Method مورد نظر نقطه ی ورود به DLL مورد نظر هست. که مثلا DllImport به این شکل در میآد :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با استفاده از این کد میتونید از متود مورد نظرتون استفاده کنید.
    این یه خلاصه درباره نحوه ی استفاده از DllImport
    اما در مورد سوالتون یه نمونه کد براتون گذاشتم. این کد رو به راحتی میتونید گسترش بدید.
    برای اینکه با باقی توابع موجود برای Dialing آشنا بشید در MSDN این کلید رو search کنید :
    Automatic Dialing Functions
    یا به link زیر مراجعه کنید :
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    برای استفاده از این کلاس هم کافی یک نمونه از کلاس بسازید و با استفاده از این نمونه متود مورد نظر رو
    استفاده کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگه مشکلی پیش اومد اطلاع بدید.

  3. #3
    داره خودمونی میشه
    تاريخ عضويت
    Jun 2006
    پست ها
    100

    پيش فرض

    اگر امکان داره کمی در مورد api توضیح بدید.

  4. #4
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2006
    پست ها
    7

    پيش فرض

    ممنون از راهنمایتون ولی اگر ممکنه یکم کاملتر بگین ممنون میشم
    چون بازم نتونستم استفاده کنم.
    فرض کنید می خوام به یک شماره مثل 2344323 اتصال برقرار کنم باید چکار کنم.

  5. #5
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    دوباره سلام.
    متاسفم که اینقدر طول کشید که جواب بدم.
    در مورد Connect شدن و به طور کلی ساخت یک Connection بهترین روش استفاده از RasAPI32.dll
    هست که شامل یک سری تابع و ساختار هست. همونطور که میدونید با استفاده از DllImport میتونید
    توابع مورد نظرتون رو Invoke کنید. برای structures ها هم روشی نظیر DllImport وجود داره.
    برای invoke کردن یک struct از کلاس StructLayout استفاده میشه. یه نمونه ازش به این شکل هست:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همونطور که میبیند در Constructor این کلاس چندین آرگومان وجود داره که LayoutKind یک از اونهاست.
    این آرگومان نحوه مدیریت حافظه رو مشخص میکنه.
    بطور کلی کدها به دو دسته تقسیم میشن:
    1-کد مدیریت نشده unmanaged Code
    2-کد مدیریت شده managed Code
    در مورد کدهای مدیرت نشده مدیرت حافظه با شما هست. که حتما با اون آشنا هستید. مثلا وقتی در ++C
    چنین کدی رو مینویسید :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در حقیقت pInt روی Heap ایجاد میشه و در پایان برنامه شما باید با استفاده از []delete اون رو از Heap پاک
    کنید. همونطور که میبینید در این جا مدیریت حافظه با شماست. این یک مثال خیلی ساده بود. چون مسائلی
    مثل تغییر آدرس ها یا فشرده سازی درش مطرح نشد.
    در مورد کدهای مدیرت شده ای مدیریت توسط کامپایلر انجام میشه. فشرده سازی و یا جابه جای رو خودش
    انجام میشه و در پایان حافظه استفاده شده رو خالی میکنه.
    این توضیح رو دادم بابت اینکه وقتی از LayoutKind.Sequential استفاده میکنید در حقیقت از کدی که
    unmanaged هست به صورت managed استفاده میکنید. (ترتیبی) در Net. مبحثی به نام Marshaling وجود
    داره تعبیر اون مهاجرت از managed به unmanaged و برعکس هست که تحت عنوان Marshal استفاده میشه.
    البته در قالب یک کلاس.
    خب فکر کنم این توضیحات لازم بود.
    نمونه این که براتون میذارم به صورت هست:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همونطور که میبنید قبل از شبیه سازی بعضی از property های structure از عبارت MarshalAs استفاده
    شده.اگه به ساخاتر struct توجه کنید (MSDN) میبیند که این آرگومان ها یک رشته با طول ثابت هستند. برای
    مدیریت کردن این رشته ها از این کلاس استفاده میشه. توضیحش خیلی مفصل تر هست.
    اگه مشکلی پیش اومد اطلاع بدید.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •