ايران ويج

نسخه‌ی کامل: آموزش ساخت dll و کار با اون
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
دستتون درد نكنه
آره منظورم ActiveX Control هست.همون فايلهاي Ocx
یه سوال مربوط به همین مبحث : چجوری می شه با کد نویسی مثلآ یه فایل dll
به رفرنس برنامه اضافه کرد
چون مثلآ ما می خوایم dll رو تو system32 طرف کپی کنیم ولی همیشه که
این system32 تو درایو C نیست که
ببین من می خوام به صورت داینامیک محل فایلی که به رفرنس اضافه می شه
رو مشخص کنم که بعد بهم ارور پیدا نشدن فایل رو نده

داش پدرام واقعا ازت ممنونم جواب كامل ومفيدي دادي خيلي وقت بود كه اين بحث
dll داشت داغونم مي كرد اما حالا برام افتاد خلاصه كه ممنونم
نقل قول: یه سوال مربوط به همین مبحث : چجوری می شه با کد نویسی مثلآ یه فایل dll
به رفرنس برنامه اضافه کرد
چون مثلآ ما می خوایم dll رو تو system32 طرف کپی کنیم ولی همیشه که
این system32 تو درایو C نیست که
ببین من می خوام به صورت داینامیک محل فایلی که به رفرنس اضافه می شه
رو مشخص کنم که بعد بهم ارور پیدا نشدن فایل رو نده

اضافه کردن به Reference برنامه رو که نمیدونم چه جوری
ولی یه راه دیگه اینه که ما در حالتی که مسیر فایلمون رو میدونیم کجاس (حالا هر جایی که میخواد باشه) میتونیم اونو توی سیستم Register کنیم حالا چجوری توی VB این کارو بکنیم اینجوری

کد:
Shell "RegSVR32 /s /" & "مسیر کامل Dll"
کار کد بالا این هست که دسترسی به DLL رو در همه جا برای شما امکان پذیر میکنه

خوب الان میتونیم از همون روش دومی که گفتم استفاده کنیم حالا اون فایل هر جا میخواد باشه باشه
کد:
Dim Ps
Set Ps = CreateObject("Prjdll.Mohasebeh")
Me.Caption = Ps.Jam_Kon(12, 12)
Set Ps = Nothing
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

نقل قول: آقا پدارم حالا كه اينو توضيح داديد يه زحمتي براي منم بكشيد و درست كردن اكتيواكس رو هم توضيح بديد.البته اگه وقت داشته باشيد

من یه معذرت به shamsoft جان بدهکارم
راستش هر چقدر زور زدم که یه مثال با توضیحات کامل بنویسم برات وقت نشد آخه OCX ها برای استفاده از اونا تو VB خیلی نکته و توضیحاتو ... دارن که مستلزم زمان زیادی هست ولی چشم اگه وقت شد میزارم
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
نقل قول: داش پدرام واقعا ازت ممنونم جواب كامل ومفيدي دادي خيلي وقت بود كه اين بحث
dll داشت داغونم مي كرد اما حالا برام افتاد خلاصه كه ممنونم

این حرفا چیه دشمنت داغون شه ایشااللهAngry Wink

نقل قول: اضافه کردن به Reference برنامه رو که نمیدونم چه جوری
ولی یه راه دیگه اینه که ما در حالتی که مسیر فایلمون رو میدونیم کجاس (حالا هر جایی که میخواد باشه) میتونیم اونو توی سیستم Register کنیم حالا چجوری توی VB این کارو بکنیم اینجوری
عجب
ولی فکر کنم با تابع LoadLibrary بشه یه کارایی کرد
بله درسته با این تابع میشه این کار رو کرد اما نه همیشه من فکر کردم منظور شما از اضافه کردن Dll به برنامه این بود که بصورت Dynamic اونو به لیست پروژه در همون قسمت References اضافه کنیم

این کار رو برای Dll هایی که در VB کمپایل شده باشن نمیشه انجام داد
چون برای بدست آوردن آدرس تابمون نمیتونیم از نام دقیق تابع استفاده کنیم

بعبارت دیگه درسته که ما یه تابع با نام Jam_Kon داریم اما این تابع در این نوع فراخونی وجود خارجی نداره
نقل قول: فکر کردم منظور شما از اضافه کردن Dll به برنامه این بود که بصورت Dynamic اونو به لیست پروژه در همون قسمت References اضافه کنیم

خوب دقیقآ منظور منم همین بود دیگه !
نقل قول: این کار رو برای Dll هایی که در VB کمپایل شده باشن نمیشه انجام داد
چون برای بدست آوردن آدرس تابمون نمیتونیم از نام دقیق تابع استفاده کنیم
بعبارت دیگه درسته که ما یه تابع با نام Jam_Kon داریم اما این تابع در این نوع فراخونی وجود خارجی نداره
فکر کنم ساختار دی ال ال در وی بی با سی ++ فرق بکنه

من یه راهی رو یک بار یجا دیدم که با عوض کردن نام تابع اونو به صورت دیگه فراخونی کرده بود حالا چهجوری نمیدونم

فک کنم در حال جستجوی (Call VB Dll in C) این بودم که یه چیزایی پیدا کردم


اون روش مثلا اینجوری بود

کد:
Declare Function _VBA_Jam_Kon Lib "PrjDll" (ByVal N1 As Long, ByVal N2 As Long) As Long


اینم یه نیگاه بنداز
http://www.codeproject.com/com/vb_from_vc.asp
نقل قول: من یه راهی رو یک بار یجا دیدم که با عوض کردن نام تابع اونو به صورت دیگه فراخونی کرده بود حالا چهجوری نمیدونم
امتحان هم کردی ؟
که اگه واقعآ شدنیه یه سرچی بزنیم
نقل قول: اینم یه نیگاه بنداز
http://www.codeproject.com/com/vb_from_vc.asp
این قضیه که مشکلی توش نیست من راههای دیگه ای هم دیدم
برای استفاده دی ال ال ساخته شده در وی بی توسط وی سی

در هر صورت متشکر از توجهت به این تاپیک
موفق باشی Wink
نه امتحان نکردم ولی اگه نشه این قسمت توی VB واقعا ضدحاله

اصولا به نظر من این روش برای استفاده از Dll ها فقط در مورد زمانی که یوزر ما Limited هست کاربرد داره

من که کاری نکردم من هر چی بلدم از شما یاد گرفتم(تیریپ مثبتی)

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

WinkWinkWinkWink
نقل قول: من که کاری نکردم من هر چی بلدم از شما یاد گرفتم(تیریپ مثبتی)
اختیار داری
علم از خودته Laugh
نقل قول: اصولا به نظر من این روش برای استفاده از Dll ها فقط در مورد زمانی که یوزر ما Limited هست کاربرد داره
من هر چی فکر می کنم ربطش رو پیدا نمی کنم
پدرام جان چه ارتباطی بین این فضیه و Limited هست ؟
صفحه‌ها: 1 2 3