PDA

View Full Version : سوال: استفاده ازیهDLLکه به زبانCنوشته شده



yasinheid
پنج شنبه 17 مرداد 1387, 11:12 صبح
یه برنامه میخوام بنویسم که یهDLLکه به زبان Cنوشته شده روبازکندوازاون استفاده کند،
برااین کارچه فرقی بین DLLبه زبانCبادیگرزبانها هست؟

Zaparo
پنج شنبه 17 مرداد 1387, 15:46 عصر
برای اینکار میتونید از API ویندوز استفاده کنید یک DLL رو لود میکنه و شما اسم تابعی رو که میخواید رو بهش میدید اون EntryPoint اون رو بهتون میده میتونید راحت ازش استفاده کنید این یک راه , راه دیگه استفاده از DllImport هست که شما اسم dll رو میدید و EntryPoint رو میدید و با توجه پارامترهای ورودی خروجی یه تابع مینویسید و بعد اون رو فراخوانی میکنید دقیقا" مثل فراخوانی توابع API که تو سایت هست

برای اینکار من بهترین چیزی که دیدم CLRInsideOut هست و برای API ویندوز هم جواب میده ولی برای API از سایت PInvoke.net و Add-In اون استفاده کنید خیلی بدرد میخوره

مثلا" CLRInsideOut میتونه یه کد Unmanaged یا همون کد C شما رو به Managed تبدیل کنه اینم مثالش



void function1(__out int* param1);





public partial class NativeMethods {

/// Return Type: void
///param1: int*
[System.Runtime.InteropServices.DllImportAttribute("<Unknown>", EntryPoint="function1")]
public static extern void function1([System.Runtime.InteropServices.OutAttribute()] out int param1) ;

}