تور لحظه آخری
امروز : سه شنبه ، 15 آبان 1403    احادیث و روایات:  پیامبر اکرم (ص):از خداوند عزيز و جليل نقل كرده است كه فرمود: هر كار ارزشمندى كه در آن بسم ...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

 






آمار وبسایت

 تعداد کل بازدیدها : 1826006633




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

[سوال] طریقه پلاگین نویسی با ویژوال بیسیک -


واضح آرشیو وب فارسی:سایت ریسک: طریقه پلاگین نویسی با ویژوال بیسیک ehsan_axe 13 مرداد 1389, 13:13سلام دوستان میخواستم لطف کنید . بگید چطوری یه dll تو vb بسازیم و چطور بنویسیم که بتونه با mmb رابطه برقرار کنه ممنون میشم که توضیح بدید ... یا اینکه یه pdf در این رابطه برام لینک کنید . با تشکر... ----------------------------------------------------------------------------------------------------------- .::کسانی که گذشته را فراموش می کنند روزی به ناچار باید آن را تکرار کنند::. Silver PC 13 مرداد 1389, 13:19سلام ! فک کنم قبلا هم پرسیدن دوستان گفتن که با ویژوال بیسیک نمیشه برای mmb پلاگین نوشت ! موفق باشید evil_gates 13 مرداد 1389, 13:22با دلفي يا ++vc بنويسيد the_king 13 مرداد 1389, 14:41تابع هایی که فایل های DLL در اختیار سایر برنامه ها قرار می دهند طبیعتا یکسری پارامتر ورودی و خروجی دارند، اما شیوه هایی که این پارامتر ها رو در حافظه قرار می دهند در کامپایلر ها (زبان ها) متفاوته. مثلا اینکه پارامتر ها از چپ به راست در حافظه قرار بگیرند یا راست به چپ، مقدار پارامتر ها در Register های پردازنده قرار بگیرند و یا در حافظه پشته (Stack) و اینکه چه بخشی مسئول خارج کردن این داده ها از پشته است. مثلا cdecl اسم شیوه ای است که اکثر کامپایلر های C بصورت پیشفرض ازش استفاده می کنند. یا شیوه pascal که توی ویندوز 3.1 و اولین نسخه Delphi استفاده شد. شیوه stdcall در ویندوز خیلی کاربرد داره، چون توابع API ویندوز ازش استفاده می کنند. دلفی های فعلی از شیوه fastcall یا همون register استفاده می کنند، در ضمن دلفی موقع ارتباط برقرار کردن با COM یا همون Component Object Model یک شیوه دیگه به اسم safecall رو بکار می بره. در بعضی از کامپایلر ها فقط یک شیوه مشخص پشتیبانی میشه مثل ویژوال بیسیک، ولی در بعضی از کامپایلر ها برنامه نویس حق انتخاب داره. مثل Microsoft MASM و ++Microsoft Visual C MMB طوری طراحی شده که نمی تونه از DLL هایی به عنوان پلاگین استفاده کنه که تابع هاش از شیوه stdcall استفاده می کنند، در حالی که ویژوال بیسیک فقط از stdcall پشتیبانی می کنه. دو راه حل هم بیشتر وجود نداره : یا باید یک فایل dll به عنوان واسطه طراحی بشه که بین MMB و DLL ای که با ویژوال بیسیک ساخته شده نقش میانجی رو بازی کنه، یعنی خودش پلاگین MMB باشه ولی هر چی از MMB گرفت به DLL ما ارسال کنه و هر چی از DLL ما دریافت کرد به MMB تحویل بده. یا باید کد های ماشین برنامه ویژوال بیسیک طوری دستکاری بشه که از شیوه cdecl استفاده کنه، نمونه چنین کاری رو قبلا توی ویژوال بیسیک انجام داده ام (فراخوانی توابع API بدون Declare در ویژوال بیسیک ()) BEHESHT 13 مرداد 1389, 16:26ضمن فرمایشات دوست عزیزمون علی سعید بگم که این گنگی stdcall بر طرف شه مثلا شما برای استفاده توابع API مجبور به استفاده از شیوه stdcall هستید که به این شکل توضیح میدم تابع BEEP در kernel32 دو تا پارامتر داره پارامتر اول فرکانس پارامتر دوم زمان تو زبان های برنامه نویسی ما عادت داریم به این شکل بنویسم: Beep(fercanc,time); اما برای ارسال این تابع شما مجبور هستید به این شکل تو زبان اسمبلی عمل کنین: push time push frcance call kernel32.beep یعنی دقیقا بر عکس اون چیزی که شما انتظار دارین یه مثال دیگه میزنم دقیق متوجه بشین: messagebox(0,"hello world","title",48); استفاده تو ASM : push 48 push title push hello world push 0 call user32.messagbox البته فک نکنین اسمبلی اینقدر هلو هست ها برای پاش کردن به پشته متن بیاد کلی کار انجام بدیدکه من فقط شبیه سازی کردم حالا خودتون قضاوت کنین وی بی چی کار می کنه موفق باشید سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4036]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن