Exporting Java global function in a Windows DLL

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.

1 Like