Generates C# interface for a c++ DLL generated by the Matlab Coder
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)

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

// 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.

Cite As

Dirk-Jan Kroon (2024). wrap_dll_csharp (https://www.mathworks.com/matlabcentral/fileexchange/67496-wrap_dll_csharp), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on MATLAB Coder in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Added support dynamic memory for variable sized function outputs

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

changed title