PDA

View Full Version : حرفه ای: استفاده از dll کامپایل شده با visual C در asp.net



e-arasteh
سه شنبه 12 آبان 1388, 13:02 عصر
سلام
من می خوام از یه dll که تو vc کامپایل شده در تو سایتم استفاده کنم. می دونید که با گذاشتن توی فولدر bin و using هم جواب نمیده. کسی راهی پیشنهاد می کنه که جواب داده باشه؟

مهدی کرامتی
سه شنبه 12 آبان 1388, 13:12 عصر
شما نمی توانید DLL های تولید شده به صورت Unmanaged را در ASP.NET استفاده کنید.

e-arasteh
سه شنبه 12 آبان 1388, 13:31 عصر
چرا نمیشه استاد:عصبانی++:

مهدی کرامتی
سه شنبه 12 آبان 1388, 13:38 عصر
از مایکروسافت بپرسید.

e-arasteh
سه شنبه 12 آبان 1388, 14:24 عصر
اصلاً منظورتون از unmanaged دقیقاً چیه؟

mehdi.mousavi
سه شنبه 12 آبان 1388, 15:42 عصر
سلام من می خوام از یه dll که تو vc کامپایل شده در تو سایتم استفاده کنم. می دونید که با گذاشتن توی فولدر bin و using هم جواب نمیده. کسی راهی پیشنهاد می کنه که جواب داده باشه؟

سلام.
اگر این DLL شما یک COM هستش، اونوقت میتونید براحتی از طریق COM Interop از این DLL در برنامه C# خودتون استفاده کنید.

اما اگر این یک DLL عادی هستش، ابتدا در پروژه C++ خودتون، توابعی رو که می خواهید از اون در C# استفاده کنید EXPORT کرده (بعنوان مثال با تعریف یک فایل def) بدین صورت:


LIBRARY "MyDll"
DESCRIPTION 'Whatever'

EXPORTS
; Explicit exports can go here

MyExportedAddNums @1


و سپس در C#، پس از Copy کردن DLL در شاخه bin (یا قرار دادن مسیر اون در Path)، تابع رو با DLLImport به برنامه C# خودتون Import کرده و سپس از اون استفاده کنید. بعنوان مثال:


[DllImport("mydll.dll")]
public static extern int MyExportedAddNums(int a, int b);

البته ممکنه نیاز باشه که داده های متفاوت را بصورتهای متفاوت Marshal کنید که توضیح جزییات مربوطه از حوصله بنده خارجه.

مهدی کرامتی
سه شنبه 12 آبان 1388, 21:34 عصر
مطلبی که ذکر کردید در مورد برنامه های نوشته شده با WinForms صادق است، اما در Web بخاطر رعایت سطوح دسترسی و محدودیت امکانات میزبان اجرای پروژه، دسترسی برای اجرای چنین روشی اعطا نمی شود.

mehdi.mousavi
چهارشنبه 13 آبان 1388, 12:59 عصر
مطلبی که ذکر کردید در مورد برنامه های نوشته شده با WinForms صادق است، اما در Web بخاطر رعایت سطوح دسترسی و محدودیت امکانات میزبان اجرای پروژه، دسترسی برای اجرای چنین روشی اعطا نمی شود.

سلام.
درسته، Application باید Full Trust Level باشه، (یا اینکه به این منظور Customize بشه)، اما این پاسخ که چنین چیزی شدنی نیست و از مایکروسافت دلیلش رو باید پرسید، پاسخ قانع کننده ای (از نظر من) نبود.

موفق باشید.

محمدامین شریفی
پنج شنبه 14 آبان 1388, 14:37 عصر
همانطور که میدانید برخی از Webapp ها نیاز به Trust بالاتر از Medium دارند، در این شرایط باید چگونه این مجوز را از host دریافت کنیم.آیا باید فضایی اجاره کینم و یا برخی از میزبان ها این اجازه را به ما میدهند؟
دوستان خیلی به جواب این سوال نیاز دارم.