PDA

View Full Version : سوال: استفاده از dll دات نت در VB6



e601
جمعه 12 شهریور 1389, 13:03 عصر
سلام

من یه dll نوشته شده با تکنولوژی .NET در اختیار دارم. از طرف دیگه احتیاج به استفاده ی فوری این dll در vb6 دارم.
خیلی وقته برنامه نویسی ویندوز رو گذاشتم کنار ، ولی الان بصورت خیلی اورژانسی باید یه برنامه ی کوچولو با vb6 بنویسم که البته ماژول اصلی این برنامه داخل یه Dll دات نت هست که سورس این dll در اختیار من نیست !!!

سوال صریح و بدون حاشیه من اینه :
به چه صورتی میشه از یک dll نوشته شده با تکنولوژی دات نت ، در vb6 استفاده کرد؟!
لطفا توجه داشته باشید سورس این dll رو ندارم ، فقط خود فایلش دست منه !

nasim bahari
جمعه 12 شهریور 1389, 13:18 عصر
سلام

من یه dll نوشته شده با تکنولوژی .NET در اختیار دارم. از طرف دیگه احتیاج به استفاده ی فوری این dll در vb6 دارم.
خیلی وقته برنامه نویسی ویندوز رو گذاشتم کنار ، ولی الان بصورت خیلی اورژانسی باید یه برنامه ی کوچولو با vb6 بنویسم که البته ماژول اصلی این برنامه داخل یه Dll دات نت هست که سورس این dll در اختیار من نیست !!!

سوال صریح و بدون حاشیه من اینه :
به چه صورتی میشه از یک dll نوشته شده با تکنولوژی دات نت ، در vb6 استفاده کرد؟!
لطفا توجه داشته باشید سورس این dll رو ندارم ، فقط خود فایلش دست منه !


سلام....

دوست خوبم....اگه بخواهیم به طور ساده به این مسئله نیگاه کنیم این Dll در واقع یه فرم هستش که طراحی شد هتا کاری خاص رو انجام بده و بطور آماده در اختیار شما قرار گرفته تا بدون اعمال تنظیمات مختلف کار مورد نظر خود را انجام بدین......حال اگه این کامپوننت بر اساس تکنولوژی .Net طراحی شده باشه........فکر می کنم جواب مشخص باشه.

موفق باشین

ricky22
جمعه 12 شهریور 1389, 13:25 عصر
سلام

سوال صریح و بدون حاشیه من اینه :
به چه صورتی میشه از یک dll نوشته شده با تکنولوژی دات نت ، در vb6 استفاده کرد؟!
لطفا توجه داشته باشید سورس این dll رو ندارم ، فقط خود فایلش دست منه !

باید DLL را به Object COm تبدیل کنید.

http://support.microsoft.com/default...b;en-us;817248 (http://support.microsoft.com/default.aspx?scid=kb;en-us;817248)


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


هتا کاری خاص رو انجام بده و بطور آماده در اختیار شما قرار گرفته تا بدون اعمال تنظیمات مختلف کار مورد نظر خود را انجام بدین......حال اگه این کامپوننت بر اساس تکنولوژی .Net طراحی شده باشه........
جان؟
میشه بیشتر توضیح بدید ما هم استفاده کنیم؟


فکر می کنم جواب مشخص باشه.
ببخشید اگر جواب مشخص هست چرا جواب را قرار نمیدید همه ببینم.
من که از پست شما هیچی نفهمیدم.
موفق باشید.

nasim bahari
جمعه 12 شهریور 1389, 13:48 عصر
سلام


باید DLL را به Object COm تبدیل کنید.

http://support.microsoft.com/default...b;en-us;817248 (http://support.microsoft.com/default.aspx?scid=kb;en-us;817248)


شاید یک کلاس باشه
شاید نه مسلما
ایشون می خوان از یک کتابخانه که با .NET نوشته شده استفاده کنند.


جان؟
میشه بیشتر توضیح بدید ما هم استفاده کنیم؟


ببخشید اگر جواب مشخص هست چرا جواب را قرار نمیدید همه ببینم.
من که از پست شما هیچی نفهمیدم.
موفق باشید.

سلام

منظور من این بود که اگه کامپوننت مورد نظر از تکنولوژی دات نت استفاده کرده باشه در حالت معمول نمی توان از اون در نسخه 6 استفاده کرد.

ricky22
جمعه 12 شهریور 1389, 13:55 عصر
سلام

منظور من این بود که اگه کامپوننت مورد نظر از تکنولوژی دات نت استفاده کرده باشه در حالت معمول نمی توان از اون در نسخه 6 استفاده کرد.
خب اگر لینکی که گزاشتم را بررسی کنید متوجه میشید که منظورتون اشتباهه.
در حالت معمول یعنی چی ؟
یعنی یک منو در VB6 بزارند و نوشته باشه IMport .net Dll and use
خب معلومه که نمیشه.
شما که انقدر همه رو به جستجو تشویق می کنید خودتون این مطلب را گوگل کردید؟
موفق باشی

nasim bahari
جمعه 12 شهریور 1389, 14:04 عصر
سلام ....

دوست خوبم ریکی ..........متوجه اشتباهم شدم......خیلی خیلی ممنونم.....باز هم مثل همیشه به من کمک کردی.....

e601
شنبه 13 شهریور 1389, 01:59 صبح
سلام

همونطور که دوست خوبم ricky22 گفت ، الزاما مورد استفاده ی من ، فرم داخل dll نیست. اتفاقا من میخوام از یک کلاس داخل این dll استفاده کنم !


باید DLL را به Object COm تبدیل کنید.

ممنون دوست من. اطلاعات خوبی بود. دستور العملش رو انجام دادم ولی جواب نداد !

در پاراگراف دوم که دقیقا مشکل من هستش اومده : رجیستر کردن یک اسمبلی دات نت برای استفاده در COM و ایجاد یک type library

توضیح داده که برای این که بتونید در VB6 از یک کامپوننت .NET استفاده کنید باید اسمبلی رو رجیستر کرده و یک type library ایجاد کنید. (که پسوند اون tlb هستش)

در ادامه گفته اگر ویژوال استودیو روی دستگاهتون نصبه که خودش type library مربوط به COM رو براتون میسازه ولی اگه ویژوال استودیو رو ندارید باید بصورت دستی و توسط یک نرم افزار کمکی بنام Regasm.exe این کار رو انجام بدید. (با سوئیچ های مربوطه)

Regasm AssemblyName.dll /tlb: FileName.tlb /codebase

در کل من دستورالعمل بالا رو که این document توضیح داده بود عمل کردم ولی نهایتا نتیجه ای نصیبم نشد !
چون در پروژه vb6 فایل dll که همچنان به بخش Refrences اضافه نمیشد و فایل tlb که با روش بالا برای این dll ساخته شد ، به لیست Refrences اضافه میشه ولی هنوز هم امکان استفاده از کلاسهای داخل dll رو ندارم !!!

از صاحبنظران و اساتید محترم بخش vb6 و vb .net همچنان درخواست راهنمایی بیشتر دارم...
با تشکر

Ali_Prodes
دوشنبه 20 دی 1389, 10:27 صبح
با سلام از دوستانی که اطلاعاتی راجع به سوال این دوستمون که مطرح کرده بود دارند ، تقاضای راهنمایی می کنم






نقل قول: فوری فوری ! استفاده از dll دات نت در VB6


سلام

همونطور که دوست خوبم ricky22 گفت ، الزاما مورد استفاده ی من ، فرم داخل dll نیست. اتفاقا من میخوام از یک کلاس داخل این dll استفاده کنم !

باید DLL را به Object COm تبدیل کنید.


ممنون دوست من. اطلاعات خوبی بود. دستور العملش رو انجام دادم ولی جواب نداد !

در پاراگراف دوم که دقیقا مشکل من هستش اومده : رجیستر کردن یک اسمبلی دات نت برای استفاده در COM و ایجاد یک type library

توضیح داده که برای این که بتونید در VB6 از یک کامپوننت .NET استفاده کنید باید اسمبلی رو رجیستر کرده و یک type library ایجاد کنید. (که پسوند اون tlb هستش)

در ادامه گفته اگر ویژوال استودیو روی دستگاهتون نصبه که خودش type library مربوط به COM رو براتون میسازه ولی اگه ویژوال استودیو رو ندارید باید بصورت دستی و توسط یک نرم افزار کمکی بنام Regasm.exe این کار رو انجام بدید. (با سوئیچ های مربوطه)
کد:
Regasm AssemblyName.dll /tlb: FileName.tlb /codebase
در کل من دستورالعمل بالا رو که این document توضیح داده بود عمل کردم ولی نهایتا نتیجه ای نصیبم نشد !
چون در پروژه vb6 فایل dll که همچنان به بخش Refrences اضافه نمیشد و فایل tlb که با روش بالا برای این dll ساخته شد ، به لیست Refrences اضافه میشه ولی هنوز هم امکان استفاده از کلاسهای داخل dll رو ندارم !!!

از صاحبنظران و اساتید محترم بخش vb6 و vb .net همچنان درخواست راهنمایی بیشتر دارم...
با تشکر

Payman62
دوشنبه 12 فروردین 1392, 21:39 عصر
سلام.
آیا راهی هست که بدون نصب .Net framework از dll دات نت در vb6 استفاده کنیم؟

xxnagin
دوشنبه 12 فروردین 1392, 23:11 عصر
سلام
Net framework dll در vb6 قابل استفاده نیست چون با فریم ورک ساخته شده
ولی برعکسش چرا یعنی dll vb6 در .net قابل استفاده هستش
ولی اینجا این راه را گفته من خودم امتحان نکردم ببینم میشه یا نه

http://support.microsoft.com/default.aspx?scid=kb;en-us;817248


برای فعال کردن گزینه شماره 6 پروژه رو روی class library قرار بده
Start Visual Studio .NET or Visual Studio 2005.
Open the solution that contains the project that you want to build for COM interop.
On the View menu, click Solution Explorer.
In Solution Explorer, right-click the project that you want to build for COM interop, and then click Properties.
Click Configuration Properties, and then click the Build node.Note In Visual Studio 2005, click Compile in the left pane.
Click to select the Register for COM Interop check box. This option is only enabled in class library projects.
Click OK to close the Property Pages dialog box

Payman62
سه شنبه 13 فروردین 1392, 02:15 صبح
سلام.



Net framework dll در vb6 قابل استفاده نیست چون با فریم ورک ساخته شده


دوست عزیز امکان استفاده dll دات نت در vb6 وجود داره.


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

آیا راهی هست که بدون نصب .Net framework از dll دات نت در vb6 استفاده کنیم؟

dabirsiaghi
سه شنبه 13 فروردین 1392, 07:55 صبح
سلام.



دوست عزیز امکان استفاده dll دات نت در vb6 وجود داره.


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

آیا راهی هست که بدون نصب .Net framework از dll دات نت در vb6 استفاده کنیم؟

من اینکارا رو برای یک نرم افزار حسابداری تحت دات نت انجام دادم چون بیس برنامه با VB6 بود ناچار بودیم فرم های دات نت رو داخل vb6 باز کنیم.
باید حتما .net framework نصب باشه حتی dll های دات نت هم باید کنار برنامه باشه اون فایل tlb صرفا یه رپر هست
امکان مشاهده متدها و پارامترهای کلاس دات نت هم در vb6 وجود نداره و باید دستی نوشته شه

manij_mhm
جمعه 20 اردیبهشت 1392, 18:16 عصر
برای استفاده روی یه سیستم دیگه، چطوری باید از dll و tlb استفاده کرد؟
با استفاده از دستور regasm یه tlb ایجاد کردم، اما فقطروی سیستم خودم کار می کنه. برای اینکه روی سیستم ها ی دیگه هم کار کنه، چطوری باید tlb و dll رو به سیستم و رجیستری معرفی کنم؟