diff options
Diffstat (limited to 'v_windows/v/examples/dynamic_library_loading/modules/library')
-rw-r--r-- | v_windows/v/examples/dynamic_library_loading/modules/library/library.v | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/v_windows/v/examples/dynamic_library_loading/modules/library/library.v b/v_windows/v/examples/dynamic_library_loading/modules/library/library.v new file mode 100644 index 0000000..ed3658c --- /dev/null +++ b/v_windows/v/examples/dynamic_library_loading/modules/library/library.v @@ -0,0 +1,19 @@ +module library + +// add_1 is exported with the C name `add_1`. +// It can be called by external programs, when the module is compiled +// as a shared library. +// It is exported, because the function is declared as public with `pub`. +// The exported C name is `add_1`, because of the export: tag. +// (Normally, the exported name is a V mangled version based on the module +// name followed by __, followed by the fn name, i.e. it would have been +// `library__add_1`, if not for the export: tag). +[export: 'add_1'] +pub fn add_1(x int, y int) int { + return my_private_function(x + y) +} + +// this function is not exported and will not be visible to external programs. +fn my_private_function(x int) int { + return 1 + x +} |