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

نام تاپیک: DLL

  1. #1

    DLL

    با سلام
    من یه DLL با ++C ساختم و در برنامه ام Import کردم

    [DllImport("My.dll")]
    publicstaticexternstring mStrs(int a);

    روی سیستم خودم فایل Dll رو پیدا می کنه و مشکلی نیست
    اما روی سیستمهای دیگه پیداش نمی کنه ؛ مشکل از کجاست؟

  2. #2
    آیا باید رجیسترش کنم؟ اگر بله. چطوری؟

  3. #3
    ضرورتی به رجیستر نیست.اونو به پروژه تان Add Refrence کنید.
    روی Solution Explorer روی نام پروژه راست کلیک کنید و Add Refrence رو انتخاب کنید . دی ال ال رو اضافه کنید.
    برای استفاده از اون هم باید از کلاسهای درون اون نمونه سازی کنید.
    MyDll.MyClass md=new MyDll.MyClass();

  4. #4
    من با Win32 این Dll رو ساختم،(تا کدش Native باشه) در نتیجه نمی توانم، بصورتی که شما توضیح دادید، از آن استفاده کنم.
    لطفا راهنمایی کنید.

  5. #5
    نقل قول نوشته شده توسط regbyte مشاهده تاپیک
    من با Win32 این Dll رو ساختم،(تا کدش Native باشه) در نتیجه نمی توانم، بصورتی که شما توضیح دادید، از آن استفاده کنم.
    لطفا راهنمایی کنید.

    سلام.
    ابتدا مطمئن بشید که تابعی که قصد Call کردن اونو در C#‎ دارید، export شده. برای export کردن تابع می تونید از فایل .def استفاده کنید، یا اونو بصورت غیر Declarative، هنگام تعریف کلاس با __declspec(dllexport)، دکوریت کنید.

    اما برای استفاده، اگر فرض کنیم که می خواهید Late Binding صورت بگیره، میتونید با LoadLibrary و GetProcAddress که با استفاده از DllImport اونو به C#‎ معرفی می کنید، به هدفتون برسید. این مثال مطلب رو بخوبی نشون میده.

    روش دیگه ای هم روی اینترنت دیدم، اما هیچوقت امتحان نکردم. اونم استفاده از EntryPoint Property هنگام DllImport هستش. مثلا:


    [ DllImport("myNativeDll.dll", EntryPoint="myNativeFunction") ]
    public static extern int myNativeFunction();


    در هر دو حالت، مطمئن بشید که فایل DLL کنار EXE برنامه C#‎ قرار گرفته.

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

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