نمایش نتایج 1 تا 2 از 2

نام تاپیک: استفاده از DLL ای که با زبانهای دیگه نوشته شده در VC++‎

  1. #1

    استفاده از DLL ای که با زبانهای دیگه نوشته شده در VC++‎

    سلام

    من فایل .dll و .tlb یک برنامه و لیست توابع استفاده شده در این DLL رو دارم اما نمی دونم با چه زبانی نوشته شده

    قصد دارم از این DLL در یک پروژه استفاده کنم

    با ورژن 2005 کار می کنم

    آیا کسی می تونه بهم کمک کنه ( در این زمینه اطلاعات زیادی ندارم لطفا از پایه توضیح دهید )

    با تشکر

  2. #2

    نقل قول: استفاده از DLL ای که با زبانهای دیگه نوشته شده در VC++‎

    نقل قول نوشته شده توسط barnameh08 مشاهده تاپیک
    سلام من فایل .dll و .tlb یک برنامه و لیست توابع استفاده شده در این DLL رو دارم اما نمی دونم با چه زبانی نوشته شده قصد دارم از این DLL در یک پروژه استفاده کنم با ورژن 2005 کار می کنم آیا کسی می تونه بهم کمک کنه ( در این زمینه اطلاعات زیادی ندارم لطفا از پایه توضیح دهید ) با تشکر
    سلام.
    آیا مستندات این DLL رو در اختیار دارید؟ از اونجاییکه از فایل tlb نام بردید، قاعدتا این DLL شما یک COM Component هستش... برای استفاده از اون، ابتدا باید tlb ی مورد نظر رو در برنامه import کنید:

    #import "myfile.tlb" no_namespace


    سپس، باید Thread ای رو که قصد دارید در اون Thread با این DLL کار کنید، ابتدا Initialize کنید و اونو در یکی از آپارتمانهای COM قرار بدید (من فرض میکنم STA باشه):

    CoInitialize(NULL);


    خاطرتون باشه در انتهای کار، در همون Thread، باید با CoUninitialize کلیه منابعی تخصیص یافته به این Thread برای COM Library موجود رو بازپس بگیرید:

    CoUninitialize();


    مرحله بعد، این هستش که یک Instance از کلاس مورد نظر رو (که توسط GUID شناسایی میشه) ایجاد کرده، اشاره گر به اون رو بگیرید و متودهای موجود روی اون کلاس رو فراخوانی کنید. یکی از ساده ترین روشها، استفاده از Smart Pointer هایی است که بصورت خودکار با Import کردن Library شما در برنامه ایجاد میشه:

    IMyComPtr pMine(__uuidof(MyCom));
    pMine->MyMethod();


    اینجا، من یک نمونه از کلاسی رو که UUID ی اون MyCom هستش، ایجاد میکنم و Pointer به اونو در pMine نگهداری میکنم. سپس متود MyMethod رو روی اون فراخوانی میکنم...

    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •