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#
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();
|
|
}
|
|
}
|
|
}
|