I do work on Windows as it’s the standard platform for our company. A simulation software vendor provided a C++ DLL library that was built with Visual Studio. I cannot access the source code, nor can the vendor custom-build things for me. However, I do have the C++ header files that contain the definition of exposed classes and functions. Under Visual Studio, I was able to use them from either a C++ application or C# .NET application (through C++/CLI).
It’ll be so great if I can use this simulation library from Julia. With my limited C++ knowledge, though, I was not able to figure out how. There are several C++ compatibility libraries Cxx.jl, CxxWrap.jl, Cpp.jl, Clang.jl, but they seem to be Linux-centric to me, and may require MinGW or other non-Visual Stuido compilers/builders on Windows, which I am reluctant to try since the DLL I have is built with Visual Studio.
In addition, I will need to be able to new objects of classes and update class member variables’ values in run-time. The data types involved include integers, enums, doubles, strings (char arrays to be exact), 1-and-2-dimensional double arrays, and pointers or array of pointers to objects (all their classes are defined in the available header files). So it is maybe insufficient for me only to be able to call C++ functions…
Anybody here has any experience or suggestion regarding how this can be done? Many thanks!