Search the Community
Showing results for tags 'csharp'.
Found 2 results
-
After using RGiesecke's DllExport package for years for getting C# ARMA extensions working, I wanted to know exactly how it worked and in the process ended up writing a DllExport package specific for ARMA's exports. You can download it here https://www.nuget.org/packages/Maca134.Arma.DllExport/ or Maca134.Arma.DllExport in Nuget. Also source is on Github https://github.com/maca134/Maca134.Arma.DllExport. Here is the old way of doing it (64bit): [DllExport("RVExtension", CallingConvention = System.Runtime.InteropServices.CallingConvention.Winapi)] public static void RVExtension(StringBuilder output, int outputSize, [MarshalAs(UnmanagedType.LPStr)] string function) { output.Append(function); } With the new package it simplifies the code into: [ArmaDllExport] public static string Invoke(string function, int outputSize) { return function; } The package will also switch the export name depending on bit'ness of the DLL.
-
csharp Arma (De)Serializer - C# Extensions
maca134 posted a topic in ARMA 3 - ADDONS & MODS: COMPLETE
This is a package that contains a JsonConvertor for the Newtonsoft.Json package in C#. It's purpose is to convert between C# data types and ARMA data types. If you have used Newtonsoft.Json you will be familar with mapping C# properties to Json properties and vise versa. You can download it here https://www.nuget.org/packages/Maca134.Arma.Serializer/ or Maca134.Arma.Serializer in Nuget. Also source is on Github https://github.com/maca134/Maca134.Arma.Serializer. Here is a very basic example: public class TestClass { public string Var1 { get; set; } public string[] Var1A { get; set; } public int Var2 { get; set; } public float Var3 { get; set; } public bool Var4 { get; set; } public TestClassInner Var5 { get; set; } public List<string> Var1B { get; set; } } public class TestClassInner { public string Var1 { get; set; } public int Var2 { get; set; } public float Var3 { get; set; } public bool Var4 { get; set; } } var testData = new TestClass { Var1 = "he\"llo", Var1A = new[] {"1", "2", "3"}, Var1B = new List<string> { "1", "2", "3" }, Var2 = 1, Var3 = 1.2f, Var4 = false, Var5 = new TestClassInner { Var1 = "h\"ello", Var2 = 1, Var3 = 1.2f, Var4 = false, } }; /* Returns: ["he""llo",["1","2","3"],1,1.2,false,["h""ello",1,1.2,false],["1","2","3"]] */ var str = ArmaArrayConvert.SerializeObject(testData); /* Returns the reconstructed object */ var obj = ArmaArrayConvert.DeserializeObject<TestClass>(str); I fairly sure I have covered all the types but there maybe missing bits.