1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
[DllImport("DevTest.dll")]
static extern void Clear([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)]ref int[] tableau, int dimension);
[DllImport("DevTest.dll")]
static extern void Clear(ref IntPtr tableau, int dimension);
// Uni
int[] uni = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach (int i in uni)
Console.WriteLine(i);
Clear(ref uni, uni.Length);
foreach (int i in uni)
Console.WriteLine(i);
// Mutli
int[,] multi = {
{0,1},
{2,3},
{4,5},
{6,7},
{8,9},
};
// Ca c'est juste pour compliquer
for (int i = 0; i <= multi.GetUpperBound(0); i++)
{
for (int j = 0; j <= multi.GetUpperBound(1); j++)
Console.WriteLine(multi[i, j]);
}
// Ca c'est pour essayer
unsafe
{
fixed (int* ptr = multi)
{
// ICI C'EST POUR UTILISER LA MEME FONCTION
IntPtr ptrptr = new IntPtr(ptr);
Clear(ref ptrptr, multi.Length);
}
}
foreach (int i in multi)
Console.WriteLine(i); |
Partager