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

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

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #12
RE: ساخت ocx قابل استفاده در vb6
COM یا Component Object Model یک مکانیسم شی گرایی تقریبا قدیمی هست که توسط مایکروسافت در سال 1993 ارائه شد . بیشترین هدف این تکنولوژی ، ایجاد دادن امکان ساخت اشیا بصورت داینامیک و تبادل و به اشتراک گذاریه قابلیت های اونها بین پروسس ها ، برنامه ها و حتی کامپیوتر های مختلف بود . همینطور DCOM و +COM هم نسخه های متفاوتی از اون بودند که بعدها ارائه شدن .
از اولین سیستم هایی که بر این مبنا ساخته شدند میشه همون مکانیسم OLE رو اشاره کرد . در زمان ارائه ویژوال استدیو 6 در سال 1998 مبحث ActiveX هم به این جمع اضافه شد .
برای مثال تمام او سیستم های آتوماسیون Office هم بر همین مبنا ساخته شده ( برنامه های پکیج آفیس همه به نوعی COM Server هستند و شما میتونید برنامه ای بنویسید که به عنوان COM client از قابلیت های اونها استفاده کنه )

ساختار درونی و برنامه نویسی سیستم های COM خیلی پیچیده بود و مشکلات عمده ای داشت برای همین مایکروسافت سیستم Net. رو ارائه کرد که تمام مشکلات موجود COM رو برطرف کرد ، برنامه نویسی رو خیلی ساده کرد و سیستم COM رو کنار گذاشت . البته همون طور که بهت گفتم هنوز پشتیبانی دو طرفه از اون رو در دات نت انجام میده یعنی شما میتونی در دات نت از اشیای COM استفاده کنی و بلعکس ولی ساخت اشیای COM در دات نت دیگه امکان پذیر نیست .
همون طور کامپوننت های COM به ocx یا ActiveX معروف بودند ، کامپوننت های دات نت به Assembly معروف هستند . مثلا یکی از مشکلات طراحی ActiveX این بود که با string های توی وی بی مشکل داشتند و اگر توی ++VC میخواستیم واسه وی بی کامپوننت بسازیم باید حواسمون رو به این مسئله میدادیم . اینجور مشکلات در سیستم یکپارچه دات نت و دنیای اسمبلی ها دیگه معنی نداره !!

کدهایی که توی محیط دات نت نوشته میشن کاملا کنترل شده هستند در یک سیستم مدیریت حافظه اتوماتیک با نام CLR اجرا میشن و بطور کل کدهای نوشته شده در دات نت رو Managed کد می گن . کدهایی که خارج از محیط CLR اجرابشن رو Unmanaged میگن مثلا کدی که در وی بی 6 نوشته میشه !

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

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

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #13
RE: ساخت ocx قابل استفاده در vb6
اینترفیس از مباحث COM هست ولی توی دات نت کاملا یه مفهوم دیگه داره !

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

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

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #14
RE: ساخت ocx قابل استفاده در vb6
سلام.
منظورم اینه که میخوام کامپوننتی که دات نت میسازم ظاهر گرافیکی هم داشته باشه. یعنی روی فرم نمایش داده بشه. مثل همون ocx ویبی. بعد بیارمش تو ویبی استفاده کنم. ولی این سورسی که گذاشتی خروجیش tlb هست. tlb که نمیتونه ظاهر گرافیکی داشته باشه. این مشکل رو چطور حل کنم؟
۲۸-اردیبهشت-۱۳۸۷, ۰۳:۰۲:۵۲
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

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

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #15
RE: ساخت ocx قابل استفاده در vb6
من خودم تا حالا همچین کاری انجام ندادم ولی اینهم شدنیه . لینک های زیر رو ببین :

http://blogs.msdn.com/calvin_hsia/archiv...65830.aspx
http://forums.microsoft.com/MSDN/ShowPos...2&SiteID=1

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

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

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #16
RE: ساخت ocx قابل استفاده در vb6
سلام.
اینارم دیدم ممد. اینا تو هیچ کدوم فایل dll دات نتشون قابل استفاده تو ویبی نیست. باید تبدیل شه به tlb و tlb هم که اینترفیس نیست. راهنمایی کن.
۳۰-اردیبهشت-۱۳۸۷, ۲۰:۳۶:۱۱
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

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

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #17
RE: ساخت ocx قابل استفاده در vb6
اگر کمی به من فرصت بدی میگردم راهش رو پیدا میکنم ، میام همین جا مینویسم

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

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

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #18
RE: ساخت ocx قابل استفاده در vb6
سلام.
ممد ممنون از کمکت. تونستم مشکلو با ویبی دات نت حل کنم. همون فایل tlb میتونه اینترفیس هم باشه. من فکر میکردم tlb رو میشه فقط به عنوان ریفرنس اد کرد ولی دیدم میشه به عنوان کامپوننت هم اد کرد. حالا یه مثال هم همین جا میذارم که کامپوننتی که با ویبی دات نت نوشته شده قابل استفاده در ویبی6 باشه.

ولی با C#.net نتونستم این کار رو بکنم. سی شارپ پیغام میده که این پروژه شامل هیچ تایپی نیست که بشه برای Com رجیسترش کرد. یه همچین پیغامی میده و اصلا فایل tlb رو نمیسازه.
اگه تونستی این مشکلو حل کن.
۰۱-خرداد-۱۳۸۷, ۱۷:۰۸:۱۱
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

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

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

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

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

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #20
RE: ساخت ocx قابل استفاده در vb6
سلام.
project مثالیه که با ویبی دات نت نوشتم. یه یوزر تو وین میسازه و تو گروه مورد نظر ادش میکنه. که این کامپوننت تو ویبی 6 هم قابل استفاده هست.
دومی هم مثال C# که گفتم چه اروری میده.


فایل‌(های) پیوست شده
.zip   Testttt.zip (اندازه: 19.33 KB / تعداد دفعات دریافت: 39)
.zip   Project.zip (اندازه: 68.33 KB / تعداد دفعات دریافت: 51)
۰۲-خرداد-۱۳۸۷, ۲۱:۵۲:۲۱
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

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

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #21
RE: ساخت ocx قابل استفاده در vb6
کافیه کد قدیمی رو به کد زیر تغییر بدی تا پروژه توی #C هم به راحتی کامپایل بشه :

کد:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace Testttt
{

    [ClassInterface(ClassInterfaceType.None)]
    [Guid("8D0240AD-1BBE-4831-8214-39DD46A4A797")]
    [ComVisible(true)]
    public partial class testttt : UserControl
    {
        public testttt()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("D");
        }
    }
}

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

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

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #22
RE: ساخت ocx قابل استفاده در vb6
سلام.
با این کار بدون ارور کامپایل میشه ولی کامپوننت رو رجیستر نمیکنه. از تو ویبی تو لیست کامپوننت ها این کامپوننت مورد نظر رو نمیتونی پیدا کنی تا به پروژه اضافه کنی.
در مورد کدی که اضافه کردی و تغییراتی هم که دادی یه توضیح بدی ممنون میشم.
۰۴-خرداد-۱۳۸۷, ۲۳:۵۲:۱۳
ارسال‌ها
پاسخ


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

پرش به انجمن:


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

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