动态链接

时间:2010-04-12 12:33:03

标签: c++ dynamic linker

如何检查系统上的动态链接是如何实现的?对动态链接代码有什么限制。对动态链接的代码有什么要求?

2 个答案:

答案 0 :(得分:2)

看起来您似乎在询问是否有任何便携式方式来检查您的操作系统功能,无论操作系统是什么。

唯一能说的就是“阅读文档”。

对于我所知道的操作系统,Windows使用DLL进行动态链接,而Unix则使用.so个文件。两者都提供手动或自动加载库入口点的功能。

答案 1 :(得分:1)

动态链接由运行系统在运行时执行,

  • 因此有以下限制:

    1. 特定操作系统。

      例如。 Windows .dll不能直接链接到linux, 你需要在那里建立它并生成.so,反之亦然。

    2. Dll是特定于平台的:

      例如。 X64 DLL无法链接到Win32项目。

    3. 它们也是特定于配置的:

      例如。如果你有一个发布dll,你不能将它链接到另一个项目 哪个配置设置为Debug。

    4. 它还取决于调用约定:

      例如。如果.dll项目的调用约定设置为__cdecl和 并且被调用者将其调用约定设置为__stdcall,这可能会导致运行时异常等问题。