esisafa
09-09-2013, 15:02
سلام دوستان
مدتی بود میگفتم چطور کتابخونه هایی مثل LibusbDotNet.dll که در واقع کلاسی برای دات نت هستن با libusb و درایورهای ویندوز ارتباط برقرار میکنه. اگر در قسمت add refrence بخوایم یک درایور اضافه کنیم با خطا مواجه میشیم.
در اینجا یک قسمت از نمونه کد قرار میدم تا با اصول اولیه ی این کار آشنا بشیم و فعلا خودم بیشتر از اینم نمیدونم.
//************************************************** ************************
//
// FUNCTION IMPORTS FROM FTCJTAG DLL
//
//************************************************** ************************
[DllImport("ftcjtag.dll", EntryPoint = "JTAG_GetDllVersion", CallingConvention = CallingConvention.Cdecl)]
static extern uint GetDllVersion(byte[] pDllVersion, uint buufferSize);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetErrorCodeString(string language, uint statusCode, byte[] pErrorMessage, uint bufferSize);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetNumHiSpeedDevices(ref uint NumHiSpeedDevices);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetHiSpeedDeviceNameLocIDChannel(uint deviceNameIndex, byte[] pDeviceName, uint deviceNameBufferSize, ref uint locationID, byte[] pChannel, uint channelBufferSize, ref uint hiSpeedDeviceType);
همین طوری که میبینید توابع dll در C# به این صورت اعلام اولیه میشن. این dll برای کار کردن با jtag ایسی ft2232 هست.
اگر کسی اطلاعات داره لطفا قضیه رو روشن کنه.
مدتی بود میگفتم چطور کتابخونه هایی مثل LibusbDotNet.dll که در واقع کلاسی برای دات نت هستن با libusb و درایورهای ویندوز ارتباط برقرار میکنه. اگر در قسمت add refrence بخوایم یک درایور اضافه کنیم با خطا مواجه میشیم.
در اینجا یک قسمت از نمونه کد قرار میدم تا با اصول اولیه ی این کار آشنا بشیم و فعلا خودم بیشتر از اینم نمیدونم.
//************************************************** ************************
//
// FUNCTION IMPORTS FROM FTCJTAG DLL
//
//************************************************** ************************
[DllImport("ftcjtag.dll", EntryPoint = "JTAG_GetDllVersion", CallingConvention = CallingConvention.Cdecl)]
static extern uint GetDllVersion(byte[] pDllVersion, uint buufferSize);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetErrorCodeString(string language, uint statusCode, byte[] pErrorMessage, uint bufferSize);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetNumHiSpeedDevices(ref uint NumHiSpeedDevices);
[DllImport("ftcjtag.dll", CallingConvention=CallingConvention.Cdecl)]
static extern uint JTAG_GetHiSpeedDeviceNameLocIDChannel(uint deviceNameIndex, byte[] pDeviceName, uint deviceNameBufferSize, ref uint locationID, byte[] pChannel, uint channelBufferSize, ref uint hiSpeedDeviceType);
همین طوری که میبینید توابع dll در C# به این صورت اعلام اولیه میشن. این dll برای کار کردن با jtag ایسی ft2232 هست.
اگر کسی اطلاعات داره لطفا قضیه رو روشن کنه.