View Full Version : مشکل با DLLImport
r0ot$harp
سه شنبه 08 شهریور 1390, 15:43 عصر
سلام دوستان عزیز .
یه ماژول سخت افزاری دارم که می خوام با C# با اون کار کنم .
Declare C++ به این صورت هست :
extern "C" __declspec(dllexport) int _stdcall GetDevice(unsigned char *Data, unsigned int *Len);
حالا می خوام بدونم تو C# چه طوری می شه ؟؟؟
باتشکر احسان
mehdi.mousavi
سه شنبه 08 شهریور 1390, 16:04 عصر
سلام.
می تونید بدین شکل عمل کنید:
[System.Runtime.InteropServices.DllImport("filename.dll", EntryPoint="GetDevice")]
public static extern int GetDevice(System.IntPtr data, ref uint len);
موفق باشید.
r0ot$harp
سه شنبه 08 شهریور 1390, 18:50 عصر
ممنون بابت پاسختون .
من همینطور عمل کردم اما زمان اجرا این خطا رو می ده :
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
IntPtr d = Marshal.AllocHGlobal(512);
int sss = GetDevice(d, 512);
باتشکر احسان
r0ot$harp
پنج شنبه 10 شهریور 1390, 19:40 عصر
دوستان مشکلم حل شد.
مشکل به خاطر وجود داشتن پارامتر های Unmanaged در کامپوننت های دلفی هست . که باید از [MarshalAs(UnmanagedType.SysInt)] قبل از Intptr استفاده کنید .
باتشکر احسان
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.