You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace TestFuckFramework
{
class Program
{
static void Main(string[] args)
{
short initRes = MatrixAPI.Init_MatrixAPI();
Console.WriteLine("Init_MatrixAPI result = {0}", initRes);
short dongleMemSize = 85;
short dongleCount = MatrixAPI.Dongle_Count(dongleMemSize);
Console.WriteLine("Dongle_Count result = {0}", dongleCount);
short dongleIndex = 0;
int dongleMemSize2 = (int)MatrixAPI.Dongle_MemSize(dongleIndex, dongleMemSize);
Console.WriteLine("Dongle_MemSize result = {0}", dongleMemSize2);
int[] dongleBytes = new int[dongleMemSize2 / 4];
IntPtr intPtr = Marshal.AllocHGlobal(4 * dongleBytes.Length);
try
{
Console.WriteLine("memory dump before");
for (int i = 0; i < dongleBytes.Length; i++)
{
if (i > 0 && i % 8 == 0) Console.WriteLine();
Console.Write("{0:X8} ", dongleBytes[i]);
}
Console.WriteLine();
Console.WriteLine();
initRes = MatrixAPI.Dongle_ReadData(3838057, intPtr, (short)dongleBytes.Length, dongleIndex, dongleMemSize);
Marshal.Copy(intPtr, dongleBytes, 0, dongleBytes.Length);
Console.WriteLine("memory dump after");
for (int i = 0; i < dongleBytes.Length; i++)
{
if (i > 0 && i % 8 == 0) Console.WriteLine();
Console.Write("{0:X8} ", dongleBytes[i]);
}
Console.WriteLine();
Console.WriteLine();
}
finally
{
Marshal.FreeHGlobal(intPtr);
}
Console.WriteLine("memory dump after GC free");
for (int i = 0; i < dongleBytes.Length; i++)
{
if (i > 0 && i % 8 == 0) Console.WriteLine();
Console.Write("{0:X8} ", dongleBytes[i]);
}
Console.WriteLine();
Console.WriteLine();
int dongleModel = MatrixAPI.Dongle_Model(dongleIndex, dongleMemSize);
Console.WriteLine("Dongle_Model result = {0}", dongleModel);
int dongleSerial = MatrixAPI.Dongle_ReadSerNr(3838057, dongleIndex, dongleMemSize);
Console.WriteLine("Dongle_ReadSerNr result = {0}", dongleSerial);
Console.ReadKey();
}
}
}