How do I mark the global functions in the Iodine to be exported? I have managed to generate a DLL, it does export a couple of (default Elements) functions, but none of my global functions, declared as public. Do I need some extra directive? I have checked the list of Iodine Keywords in the documentation, but have found none.
Eugene,
what platform is this, .NET or Island/Windows? And how do you want to access the exported functions – from a different Elements project, or with a different compiler?
On Island/Windows, you will want to use the @DllExport aspect to mark globals as exported for see from non-Elements compilers, such as C/C++ or Delphi; From Elements, you should be able to access public globals as they are the referencing the .fx
file for the .dll
.
Thank you. It’s Island/Windows and the export is for use by third-parties, of course.
I tried @DllExport and things look better, but not completely: the functions got exported but with mangled names like ms_t1d_TestClassLibrary_d_____Global10_InitializeDriver . Is this the only possible name format?
I believe @DllExport
and/or @SymbolName
let you override the mangling and define your own public names. @ck?
Thank you, both @DllExport(“ProperName”) and @DllExport @SymbolName(“ProperName”) do the job.