C ++ - 如何链接C ++资源?

时间:2011-08-15 04:48:50

标签: c++

我需要在已编译的C ++资源中使用函数。

如何使用已编译资源中的函数并让主程序使用我的库?

我有这段代码:

log("INFO","THIS IS A TEST MESSAGE");

那应该从我拥有的文件中提取函数。这个

1 个答案:

答案 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