واضح آرشیو وب فارسی:سایت ریسک: ramkly24-02-2007, 09:58 AMمي خوام از WinInet.dll براي ساخت connection استفاده كنم ولي نه بلدم چطور از API ها استفاده كنم و نمي دونم كلا بايد چكار كنم . اگر كسي برنامه كوچكي داره كه به يك شماره تلفن connect بشه ممنون ميشم اگر در اختيارم بزاره. اگر راه ديگري هم براي اتصال وجود داره بم معرفي كنيد. someone24-02-2007, 12:45 PMسلام. برای استفاده از unmanage operatins در Net. سه روش وجود داره. برای استفاده از API ها و کلا فراخوانی یک تابع از یک Dll از Platform Invoke استفاده میشه. برای call کردن یک Dll در #C و استفاده از Method مورد نظر از DllImport استفاده میشه. در نظر داشته باشید که اسم Method مورد نظر نقطه ی ورود به DLL مورد نظر هست. که مثلا DllImport به این شکل در میآد : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با استفاده از این کد میتونید از متود مورد نظرتون استفاده کنید. این یه خلاصه درباره نحوه ی استفاده از DllImport اما در مورد سوالتون یه نمونه کد براتون گذاشتم. این کد رو به راحتی میتونید گسترش بدید. برای اینکه با باقی توابع موجود برای Dialing آشنا بشید در MSDN این کلید رو search کنید : Automatic Dialing Functions یا به link زیر مراجعه کنید : http://msdn2.microsoft.com/en-us/library/aa 385473.aspx !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای استفاده از این کلاس هم کافی یک نمونه از کلاس بسازید و با استفاده از این نمونه متود مورد نظر رو استفاده کنید: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه مشکلی پیش اومد اطلاع بدید. kamal11427-02-2007, 08:49 AMاگر امکان داره کمی در مورد api توضیح بدید. ramkly27-02-2007, 06:34 PMممنون از راهنمایتون ولی اگر ممکنه یکم کاملتر بگین ممنون میشم چون بازم نتونستم استفاده کنم. فرض کنید می خوام به یک شماره مثل 2344323 اتصال برقرار کنم باید چکار کنم. someone07-03-2007, 12:45 PMدوباره سلام. متاسفم که اینقدر طول کشید که جواب بدم. در مورد 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) میبیند که این آرگومان ها یک رشته با طول ثابت هستند. برای مدیریت کردن این رشته ها از این کلاس استفاده میشه. توضیحش خیلی مفصل تر هست. اگه مشکلی پیش اومد اطلاع بدید. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1117]