امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت ocx قابل استفاده در vb6
نویسنده پیام
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #45
RE: ساخت ocx قابل استفاده در vb6
برای رجیستر کردن و public کردن یک اسمبلی به اسم مثلا NETServer.dll دستور های زیر رو باید اجرا کرد :

کد:
tlbexp NETServer.dll /out:NETServer.tlb
regasm /tlb:NETServer.tlb NETServer.dll
gacutil /i NETServer.dll

سعی کن ببین حالا که public میشه میتونی property هاش رو بخونی یا نه !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۷-خرداد-۱۳۸۷, ۱۶:۲۸:۲۶
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #46
RE: ساخت ocx قابل استفاده در vb6
سلام.
این دستور این ارور رو میده.
Failure adding assembly to the cache: Attempt to install an assembly without a strong name

ضمن این که قبلا این دستورات tlbexp و regasm رو تست کردم. اینا dll رو تو لیست کامپوننت ها اضافه نمیکنن. فقط تو لیست ریفرنس ها اضافه میشه و نمیشه در حات دیزاین رو فرم روشون کار کرد.
۱۷-خرداد-۱۳۸۷, ۱۸:۵۱:۱۶
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #47
RE: ساخت ocx قابل استفاده در vb6
برای مشکل اون خطا این لینک رو ببین و مراحلش رو طی کن تا یه strong name ( یه کد رمزی برای اسمبلی خودت ) بسازی و بعد کارت راه میافته !

http://support.microsoft.com/kb/302340


اضافه کردن یه اسمبلی دات نتی به لیست کامپوننت های COM تا اونجایی که من مطالعه کردم محال است !! شما فقط به یک اینترفیس COM دسترسی خواهی داشت( که در اصل COM نیست و دات نتیه ) و نه به یک کامپوننت COM . به همین علت هست که اسم اسمبلی شما در لیست اینترفیس ها میاد نه کامپوننت ها !!!!
در واقع باید بدونی که شما به هیچ وجه یه کامپوننت COM نمیسازی بلکه با یک لایه نرم افزاری به نام CCW به امکانات یک اسمبلی دات نتی از داخل یک کلاینت COM ( مثل وی بی 6 ) دسترسی پیدا میکنی و بس !!! راه دسترسی به اون هم فقط از طریق اینترفیس Type Library یا همون فایل tbl هست .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۱۷-خرداد-۱۳۸۷, ۲۰:۲۵:۵۲، توسط Mamad2003.)
۱۷-خرداد-۱۳۸۷, ۲۰:۱۷:۴۴
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #48
RE: ساخت ocx قابل استفاده در vb6
سلام.
ولی من تو اون مثالی که گذاشته بودم دیدی که dll به لیست کامپوننت ها اضافه میشه. پس این کار شدنیه. مشکل من نمایش تو لیست کامپوننت ها نیست. اونو که تو مثالی که گذاشتم حل کردم. من میخوام تو حالت دیزاین به کل پروپرتی های کامپوننت دسترسی داشته باشم. همه اونایی که تو .net نشون داده میشن.
۱۸-خرداد-۱۳۸۷, ۰۲:۳۰:۱۴
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #49
RE: ساخت ocx قابل استفاده در vb6
فعلا چیزی به ذهنم نمیرسه !
از هفته بعد امتحان پایان ترم دارم و تا 2 هفته وقت ندارم . تلاشت رو بکن و ببین میتونی راهش رو پیدا کنی یا نه . اگر پیدا کردی اینجا هم بگذار !
اگر نه دو هفته دیگه میام روش دوباره کار میکنم ببینم قضیه از کجا آب میخوره !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۸-خرداد-۱۳۸۷, ۱۴:۵۰:۵۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #50
RE: ساخت ocx قابل استفاده در vb6
سلام.
اوکی. من روش کار میکنم نتیجه گرفتم حتما همین جا اعلام میکنم.
ایشالا امتحاناتت رو با موفقیت بگذرونی.
۱۸-خرداد-۱۳۸۷, ۱۸:۴۵:۵۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #51
RE: ساخت ocx قابل استفاده در vb6
سلام.
یه مشکل دیگه.
اون مثالی که گذاشته بودم که کامپوننتی میساخت که میشد تو ویبی به صورت اینترفیس ازش استفاده کرد(http://www.forum.iranled.com/attachment.php?aid=1017) یه مشکلی داره. اول این که اگه بخوای از کامپوننت رو یه سیستم دیگه استفاده کنی حتما باید برنامه دات نتی رو هم اجرا کنی تا کامپوننت رجیستر و قابل استفاده در ویبی بشه.
دوم این که رو سیستم خودمم چند تا کامپوننت که میسازم با هم قاطی میشن. مثلا من تو ویبی تست1 رو اد میکنم تست2 به جعبه ابزارم اضافه میشه.
حالا چطور میتونم دستی کامپوننتم رو رجیستر کنم که نه قاطی بشن نه لازم باشه برنامه دات نتی رو سیستم های دیگه هم کامپایل شه؟
(آخرین ویرایش در این ارسال: ۲۱-خرداد-۱۳۸۷, ۱۸:۰۰:۵۰، توسط Payman62.)
۲۱-خرداد-۱۳۸۷, ۱۷:۵۱:۵۳
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #52
RE: ساخت ocx قابل استفاده در vb6
سلام.
مشکل رو خودم حل کردم.
یه پچ نوشتم مشکل رو حل میکنه. بعدا میذارم این جا کامل توضیح میدم.
۲۵-خرداد-۱۳۸۷, ۱۲:۰۸:۵۸
ارسال‌ها
پاسخ
تشکر شده توسط : ajlajlajl
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #53
RE: ساخت ocx قابل استفاده در vb6
سلام.
یه سوال جدید.
حالا که با اون مثالی که توضیح دادم (http://www.forum.iranled.com/attachment.php?aid=1017) میشه کامپوننت از تو .net اورد تو ویبی یه مشکل جدید دارم. من میخوام کل پروپرتی های کامپوننت تو ویبی قابل دسترس باشه. ولی تو ویبی نمیشه به پروپرتی های کامپوننت دسترسی داشت. چطور این مشکلو حل کنم؟
۲۸-خرداد-۱۳۸۷, ۱۶:۱۷:۴۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #54
RE: ساخت ocx قابل استفاده در vb6
سلام.
یه سوال دیگه.
فرض یه کامپوننت ساختی که روش یه کلیده که وقتی روش کلیک کنی یه فرم باز میشه. وقتی اینو میاری تو ویبی یه مشکلی پیش میاد. وقتی فرم ویبی باز میشه و کلید رو کلیک میکنی فرم دات نتی باز میشه. تا این جا مشکلی نیست. ولی بعد که ویبی رو استاپ میکنی اون فرم دات نتی همچنان باز میمونه. اگه تو ویبی 2 تا فرم داشته باشی و کامپوننت رو یکی از فرمات باشه و فرم باز شه و کارش تموم شه و بسته شه ولی فضای اشغالی توسط کامپوننت دات نتی همچنان اشغال میمونه و هندل ها رو آزاد نمیکنه. تا زمانی که برنامه ویبی کلا بسته نشه کامپوننت دات نتی باز میمونه. حتی اگه اون فرمی که روش بوده بسته شه.
حالا من با یه سری ترفند و نوشتن ساب مشکلو موقتا حل کردم. ولی میخوام بدونم چی کار باید کرد که وقتی فرم ویبی بسته شد همه کامپوننت های روش هم بسته شن و فضای اشغالی کاملا آزاد شه.
۱۸-تير-۱۳۸۷, ۱۶:۵۱:۳۷
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #55
RE: ساخت ocx قابل استفاده در vb6
سلام.
بازم سوال.
این بار در مورد EVENT ها. من میخوام تعدادی ایونت تو دات نت برای کامپوننتم تعریف کنم و هنگامی که اون کامپوننت رو اوردم تو ویبی6 کد هنگام اجرای اون ایونت رو بنویسیم.

من تو ویبی دات نت با اتربیوت COMCLASS میتونم ایونت های کامپوننت دات نت رو تو ویبی6 استفاده کنم. ولی این کامپوننت از namespace ویژوال بیسیک هست.
Microsoft.VisualBasic.ComClass()
مشکل این جاست که این کامپوننت تو ویبی دات نت جواب میده ولی تو C# جواب نمیده. چطور میتونم این مشکل رو جل کنم؟ با تعریف interface و اتربیوت InterfaceType و ClassInterface تونستم این مشکل رو برای ریفرنس ها حل کنم. یعنی اگه کامپوننت ظاهر گرافیکی نداشته جواب میده ولی برای کامپوننت با ظاهر گرافیکی جواب نمیده.
لطفا راهنمایی کنید.
۲۲-تير-۱۳۸۷, ۱۶:۲۹:۰۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  غیره قابل دسترس بودن بانک توسط کاربر Dena888 3 5,580 ۰۷-اردیبهشت-۱۳۹۱, ۰۴:۵۴:۱۷
آخرین ارسال: jalil_m

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS