PDA

View Full Version : استفاده از آرایه دلفی در #C



yasser_ebrahimi
یک شنبه 10 شهریور 1392, 14:38 عصر
با سلام.
من کد زیر رو توی دلفی نوشتم و DLL کردم. وقتی توی #C ازش استفاده میکنم فقط خونه اول آرایه رو بهم میده. انواع داده ای مختلفی رو تست کردم ولی جواب نگرفتم.

Function DelphiFunction(Var Arr: TBytes): WordBool; Stdcall; Export;
Var
SetLength(Arr, 10);

Arr[0] := 11;
Arr[1] := 12;
Arr[2] := 13;
Arr[3] := 14;
Result := True;
End;

[DllImport("DelphiLibrary.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
public static extern bool DelphiFunction(ref byte[] arr);
static void Main(string[] args)
{
byte[] array = new byte[10];
DelphiFunction(ref array);
foreach(byte b in array)
Console.ReadLine(b);
}

یوسف زالی
یک شنبه 10 شهریور 1392, 16:20 عصر
سلام.
تا جایی که می دونم آرایه باز در دلفی ساختار اشاره گری داره و لزوما خونه هاش پشت سر هم نیستند.

yasser_ebrahimi
یک شنبه 10 شهریور 1392, 16:27 عصر
با تشکر
من از اشاره گر هم استفاده کردم ولی حل نشد. اگه امکانش هست میشه بیشتر راهنمایی کنید, لطفاً

یوسف زالی
یک شنبه 10 شهریور 1392, 16:29 عصر
خودم این کار رو نکردم ولی فکر می کنم راه چاره استفاده از آرایه های محدود هست. به این صورت:


Arr: array[0..100] of integer;