在vimscript中调用C ++库函数

时间:2012-01-23 09:39:03

标签: vim vim-plugin

有没有办法在用vimscript编写的vim插件中调用C ++共享库函数?

假设有一个hello_world.so,它有一个函数hello_world()。每当vim用户使用特定的键绑定时,我想调用此函数。

1 个答案:

答案 0 :(得分:13)

是的,你可以这样做,试试:help libcall

您必须使用我怀疑的“cdecl”调用约定将函数导出为未修饰的C函数:

来自vim帮助:

  

对于Win32,您编写的函数必须放在DLL中并使用   普通的C调用约定(在Windows中使用的非Pascal)   系统DLL)。该函数必须只有一个参数,a   字符指针或长整数,并且必须返回一个字符   指针或NULL。返回的字符指针必须指向内存   函数返回后仍然有效(例如静态   DLL中的数据)。如果它指向分配的内存,那个内存就会   泄漏了。在函数中使用静态缓冲区应该可以正常工作   然后在卸载DLL时释放。

有一个如何做的例子here