custom calling convention with shared library demo