dl: add comments for the dl/example
parent
c32547f382
commit
05f6e8b5aa
|
@ -5,6 +5,8 @@ pub const (
|
||||||
dl_ext = get_shared_library_extension()
|
dl_ext = get_shared_library_extension()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// get_shared_library_extension returns the platform dependent shared library extension
|
||||||
|
// i.e. .dll on windows, .so on most unixes, .dylib on macos.
|
||||||
pub fn get_shared_library_extension() string {
|
pub fn get_shared_library_extension() string {
|
||||||
mut res := '.so'
|
mut res := '.so'
|
||||||
$if macos {
|
$if macos {
|
||||||
|
|
|
@ -1,10 +1,19 @@
|
||||||
module library
|
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']
|
[export: 'add_1']
|
||||||
pub fn add_1(x int, y int) int {
|
pub fn add_1(x int, y int) int {
|
||||||
return my_private_function(x + y)
|
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 {
|
fn my_private_function(x int) int {
|
||||||
return 1 + x
|
return 1 + x
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue