我需要在已编译的C ++资源中使用函数。
如何使用已编译资源中的函数并让主程序使用我的库?
我有这段代码:
log("INFO","THIS IS A TEST MESSAGE");
那应该从我拥有的文件中提取函数。这个
答案 0 :(得分:0)
更新(删除旧答案)
因为您已经详细说明了通过“插件”加载预编译代码的必要性。这通常通过称为“动态加载”的机制来完成。在Windows中,这是通过使用DLL(动态链接库)文件来完成的。 DLL文件是已编译代码库,运行程序按需“加载”。正在运行的程序可以加载DLL并查询具有已知名称的函数指针的地址。例如,“日志记录”DLL可以导出“日志”功能。如果其他人想要提供替代实现(并且可以在某种配置文件中使用程序注册其DLL的路径),他们只需提供自己的DLL,它导出相同的一组函数和完全相同的签名。并且有一些有用的抽象称为COM用于加载(C ++)接口,但我离题了。
在Unix操作系统中,DLL的等价物称为“共享库”或“.so”文件。
以下是一些相关链接:
http://en.wikipedia.org/wiki/Dynamic-link_library
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html