PDA

View Full Version : یک سوال بسیار مهم در باره ساخت DLL با وی بی 6



mehrdad201
جمعه 08 تیر 1386, 14:32 عصر
سلام به همه دوستان

من امروز میخوام در مورد مساله بسیار مهمی از اساتید وی بی سوالی بپرسم.

امیدوارم که بتونم منظورم رو به طور کامل برسونم.

میدونید که توی وی بی امکان ساختن DLL هم وجود داره.

شما وقتی میخوای یک DLL رو با وی بی بسازید کافیه که نوع پروژه رو ActiveX DLL انتخاب کنید و فانکشنهای مربوطه رو در کلاس فایل قرار بدید.

اما مشکل چیه؟
نمیدونم تا حالا چند بار از فانکشنهای DLL در برنامه وی بی تون استفاده کردید.
اما وقنی که میخواید مثلا از API مربوط به PLAY SOUND استفاده کنید کافیه این خط رو به بالای برنامتون اضافه کنید

Private Declare Function playa Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

حالا میتونید از تابع playa که یه فایل صوتی رو اجرا می کنه استفاده کنید.
---------------------

حالا میرسیم به مشکل اصلی. من میخوام یه سری فانکشن رو در فایل DLL قرار بدم و یک اکتیو ایکس از نوع DLL درست کنم.
اما متاسفانه در وی بی حتما باید فانکشنها در داخل یک کلاس تعریف بشن و برای دستیابی به اون فاکشنها هم باید یک آبجکت از نوع اون کلاس ایجاد کنیم تا بتونیم به فانکشنهای اون کلاس دسترسی داشته باشیم.

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

ممنون میشم راهنماییم کنید. ایمیل من best_hyip2005@yahoo.com و ایدی یاهوم هم best_hyip2005 هست.
لطفا هر کسی میتونه راهنماییم کنه چون کارم واقعا لنگ مونده.

majidghost
جمعه 08 تیر 1386, 19:45 عصر
خوب شما فانکشنهاتو تو یه ماژول تعریف کن.

mehrdad201
جمعه 08 تیر 1386, 22:06 عصر
تعریف کردم

اما بازم نتونستم دسترسی داشته باشم. فقط به فانکشنهایی میشه دسترسی داشت که تو کلاس تعریف بشن.

در ضمن حتما باید یه آبجکت از نوع اون کلاس رو ایجاد کنیم.

sinpin
شنبه 09 تیر 1386, 06:47 صبح
در ضمن حتما باید یه آبجکت از نوع اون کلاس رو ایجاد کنیم.

کلاس رو از نوع استاتیک تعریف کنید

emadct
شنبه 09 تیر 1386, 18:04 عصر
دوست عزیز در VB امکان ساختن Export DLL وجود نداره و فقط به شما اشیاء خانواده COM رو عرضه می کنه.

موفق باشی

sinpin
یک شنبه 10 تیر 1386, 08:42 صبح
سلام به همه دوستان

من امروز میخوام در مورد مساله بسیار مهمی از اساتید وی بی سوالی بپرسم.

امیدوارم که بتونم منظورم رو به طور کامل برسونم.

میدونید که توی وی بی امکان ساختن DLL هم وجود داره.

شما وقتی میخوای یک DLL رو با وی بی بسازید کافیه که نوع پروژه رو ActiveX DLL انتخاب کنید و فانکشنهای مربوطه رو در کلاس فایل قرار بدید.

اما مشکل چیه؟
نمیدونم تا حالا چند بار از فانکشنهای DLL در برنامه وی بی تون استفاده کردید.
اما وقنی که میخواید مثلا از API مربوط به PLAY SOUND استفاده کنید کافیه این خط رو به بالای برنامتون اضافه کنید

Private Declare Function playa Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

حالا میتونید از تابع playa که یه فایل صوتی رو اجرا می کنه استفاده کنید.
---------------------

حالا میرسیم به مشکل اصلی. من میخوام یه سری فانکشن رو در فایل DLL قرار بدم و یک اکتیو ایکس از نوع DLL درست کنم.
اما متاسفانه در وی بی حتما باید فانکشنها در داخل یک کلاس تعریف بشن و برای دستیابی به اون فاکشنها هم باید یک آبجکت از نوع اون کلاس ایجاد کنیم تا بتونیم به فانکشنهای اون کلاس دسترسی داشته باشیم.

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

ممنون میشم راهنماییم کنید. ایمیل من best_hyip2005@yahoo.com و ایدی یاهوم هم best_hyip2005 هست.
لطفا هر کسی میتونه راهنماییم کنه چون کارم واقعا لنگ مونده.

اگه فقط قسمت bold شده رو مینوشتید کافی بود

mehrdad201
یک شنبه 10 تیر 1386, 14:42 عصر
یه جایی تو همین فوروم در مورد Export DLL و کمپایلر FREE BASIC صحبت شده

کسی نمیدونه با این چطوری میشه کار کرد ؟!؟!؟!

oVERfLOW
جمعه 21 تیر 1387, 11:34 صبح
کاری نداره برای دانلودش به سایت گوگل برید و تایپ کنید FreeBasic
روی اولین گزینه کلیک کنید و برنامه رو دانلود کنید

تعداد زیادی مثال توی شاخه‌ی برنامه هست که یکی از اونا هم برای ساخت Export DLL هست

ساختار زبانش در بخش‌های محدودی با VB تفاوت داره ولی با کمی وقت گذاشتن می‌تونید توابع خودتون رو به FB تبدیل کنید و یه Export Dll بسازید

برای اطلاعات بیشتر به تالار سایت FB مراجعه کنید
دو موضوع مرتبط در تالار FB

http://www.freebasic.net/forum/viewtopic.php?t=10937

http://www.freebasic.net/forum/viewtopic.php?t=11267