PDA

View Full Version : ساختن dll



m_nejad
دوشنبه 05 بهمن 1383, 08:24 صبح
سلام
برای صدا زدن فایل help chm در برنامه یک dll نوشتم. می خواهم موقع صدا کردن یک صفحه از help در سورس بجای نوشتن اسم صفحه، چیزی شبیه popup و یا خاصیت داشته باشم که با زدن نقطه لیست باز شود و انتخاب کنم (البته این کار رو با کلاس انجام دادم ولی وی خواهم لیست متغیر و از فایل پر شود و نیاز به add کردن کلاس نداشته باشد) در ضمن در محیطهای دیگر برنامه نویسی نیز بشود استفاده کرد.
لطفا راهنمایی کنید.
با تشکر[/b]

Behrouz_Rad
دوشنبه 05 بهمن 1383, 09:02 صبح
سلام.
فایل DLL به صورت پویا در تمامی زبان های برنامه نویسی قابل دسترسی است.
فایل را در حالت خروجی باز کنید، با دستور Line Input رکوردها را تک تک بخوانید و به منو اضافه کنید.

در ضمن، سوال را در یک تاپیک مطرح کنید نه در دو تاپیک با دو عنوان مختلف و محتوای واحد.
موفق باشید.

rezaTavak
دوشنبه 05 بهمن 1383, 17:41 عصر
سلام

اگه بخواهیم یک فایل Dll را در ویژوال بیسک درست کنیم بایستی چکار کنیم؟

Behrouz_Rad
دوشنبه 05 بهمن 1383, 19:17 عصر
در هنگام ورود به VB و در صفحه ی آغازین، آیتم Activex DLL را انتخاب کنید.
VB‌ به طور خودکار یک Class Module برای شما ایجاد می کند.
دستورات شی گرایی را در Class Module تایپ کنید.

rezaTavak
سه شنبه 06 بهمن 1383, 02:34 صبح
اگر مثالی دارید لطف کنید. چون من در سی بلدم اما در بیسک نه.

esi022
سه شنبه 06 بهمن 1383, 03:51 صبح
با visual basic 6.0 تست کن :موفق:

Behrouz_Rad
سه شنبه 06 بهمن 1383, 08:03 صبح
esi022 you are a real professional in T-SQL
congratulation
:wise1:

esi022
سه شنبه 06 بهمن 1383, 12:59 عصر
سپاسگزارم for you :flower: :flower:
اما T-sql چه ربطی به dll داشت؟

Behrouz_Rad
سه شنبه 06 بهمن 1383, 13:01 عصر
همین جوری گفتم.
این حرف من رو یک پیغام خصوصی فرض کن.
:wink:

rezaTavak
سه شنبه 06 بهمن 1383, 14:35 عصر
:flower:

esi022
سه شنبه 06 بهمن 1383, 15:26 عصر
آقا بهروز دوست دارم
من فقط تو خوابیدن تخصص دارم
پروفشنال پروفشنال :flower: :flower: :موفق:

rezaTavak
پنج شنبه 08 بهمن 1383, 13:25 عصر
سلام

من Dll و سورس را نگاه کردم. Entry ponit نداره و اگه بخواهیم توی یک نرم افزار صداش کنیم پیغام نداشتن نقطه ورود را میده. توی C تو فایل .DEF میشه این را تعریف کرد یا از کلمه کلیدی dllexport استفاده میشه اما من می خواستم بدونم توی بیسک چیه؟

a_roshanfekr2
پنج شنبه 08 بهمن 1383, 16:59 عصر
با سلام
dll که توی وی بی ساخته می شه یکم با سی فرق داره
وقتی با وب بی dll ساختی به صورت یک کلاس در می آد و برای استفاده در خود وی بی از منوی
Project گزینه References رو باید انتخاب کرده و مسیر فایل dll رو بهش بدی
از اون موقع به بعد به لیست DataType های شما اسم کلاس ساخته شده در dll اضافه می شه و قابل استفاده است
البته بازم می گم DataType جدید به صورت کلاسه مثلا فرض می کنیم اسم کلاس ما Class1 هست و یک متد Public به اسم Method1 داره
طرز استفاده از dll ساخته شده به صورت زیر باید باشه:


Dim c as new Class1
c.Method1

rezaTavak
پنج شنبه 08 بهمن 1383, 22:02 عصر
یعنی نمیشه Dll استانداری ساخت؟

esi022
جمعه 09 بهمن 1383, 00:16 صبح
من دقیقا منظور شما رو نفهمیدم
entry point?
هر برنامه dll رو یه مدل صدا میزنه اما روشها تقریبا یکیه- درسته؟
از تو asp کلاسیک هم اگه dll رو register کرده باشین میتونید استفاده کنید.
منظور از dll استاندارد چیه؟

a_roshanfekr2
شنبه 10 بهمن 1383, 08:02 صبح
فکر می کنم منظور آقای rezaTavak ساختن dll به صورت ساخت یافته در زبان C باشد
یعنی شبیه به dll های ویندوز که فقط شامل توابعی هستند که هر کدام کار خاصی انجام می دهند و ربطی به
یکدیگر ندارند
البته به صورت موضوعی دسته بندی شده اند
مثل اینکه بخواهیم یک ماجول ( نه یک کلاس ماجول ) را در VB به dll تبدیل کنیم

esi022
شنبه 10 بهمن 1383, 09:52 صبح
حالا افتاد :mrgreen:
اما !!!!!!!!!!!!
vb پشتیبانی .....................................؟؟؟؟
تکرار کن :evil2:

rezaTavak
شنبه 10 بهمن 1383, 23:53 عصر
منظورم Dll است که با دستور Declare قابل دستریی باشد. و Depends هم اون توابع را نشون بده.

قانونی که توی Dll است اینه که هر تابعی را نشه دید و به آن دسترسی داشت مگر با دستور برنامه نویس

a_roshanfekr2
یک شنبه 11 بهمن 1383, 08:54 صبح
شاید بشه ساخت
من که بلد نیستم

rezaTavak
یک شنبه 11 بهمن 1383, 11:30 صبح
سلام

در هر حال ممنونم. اگه بشه یه همچین کاری کرد خیلی کار من سبک میشه چون بیسیک بسیار کار کمتر از برنامه نویسی سی می خواد.

esi022
یک شنبه 11 بهمن 1383, 12:00 عصر
سلام آقای tavak
میشه توضیح بدید که با چه برنامه ای میخواهید این dll رو صدا کنید

rezaTavak
یک شنبه 11 بهمن 1383, 23:03 عصر
با فاکس پرو.

البته Msvbvm60.dll و... که مربوط به بیسیک است را استفاده میکنم. یعنی توابع بیسیک در این Dll و بقیه Dll های مربوط به بیسیک.

البته با خود بیسیک هم با Declare باید توابع در Dll را صدا زد. مثل:





Public Declare Function GetWindowsDirectory Lib _
"kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long