File Exchange

image thumbnail

wrap_dll_csharp

version 1.2.0.0 (10.3 KB) by Dirk-Jan Kroon
Generates C# interface for a c++ DLL generated by the Matlab Coder

4 Downloads

Updated 11 Sep 2018

View License

Function which generates a C# interface for a c++ DLL generated by the
Matlab Coder (with Visual Studio compiler).
Not only the external functions are wrapped also the structs, exposing
only managed classes and functions to the C# user.

Tested with Visual Studio 2017 in combination with Matlab ( Coder ) 2018a.

wrap_dll_csharp(filename_prj, filename_cs, namespace_cs, classname_cs, dllfilename_cs)

inputs:
(optional)
filename_prj : The coder project which generated coded
(example 'example.prj');
filename_cs : The full filename of the C-sharp file which will be written
(example 'example1.cs')
namespace_cs : The name space used in the C-sharp file,
(example, 'example1')
classname_cs : The class wrapping the external functions,
(example, 'example1_class')
dllfilename_cs : The full filename of the DLL file when using the c-sharp code,
(example, 'example1.dll')%

******* Example of calling the DLL through the generated C# code interface
// Matlab class input
var class1 = new class1();

// Double array 3x3 property of class
var data = new emxArray_real_T(3,3);

class1.Data = data;
// Set Text property of class
class1.Name = "test';
// Cell array output of matlab function
cell_0 b_Managed = new cell_0();

// Call initialize function made by the Matlab-coder
name_length_class.name_length_initialize();

// Call the c++ converted Matlab function
name_length_class.name_length(ref class1, ref b_Managed);
*********
Note, thus no more need to code DllImport, ASCIIEncoding or GCHandle.Alloc, this is all done by this C# interface generator.

Comments and Ratings (2)

Sahin Ozsoy

Perfect! Works like a charm You saved me days of struggling. Thank you very much Jan!

Updates

1.2.0.0

Added support dynamic memory for variable sized function outputs

1.1.0.0

Now generates valid code, even when runtime checks are turned on. Now also supports returning single value instead of array or structure

1.0.0.0

changed title

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor