我们可以从 dll 中导入和导出函数吗

Posted

技术标签:

【中文标题】我们可以从 dll 中导入和导出函数吗【英文标题】:Can we import and export a function from a dll 【发布时间】:2012-03-08 15:42:20 【问题描述】:

我有一个 dll 说“A.dll”,它导出一个函数“int foo()”。我有另一个 dll 说“B.dll”,它消​​耗 A.dll 并使用函数 foo() 并导出一些其他函数。是否可以从 B.dll 导出函数“int foo()”(从 A.dll 导入),以便可以在第三个 dll“C.dll”中使用。

我想知道这是否可能,我不想要像让第三个 dll 可以使用 A.dll 这样的变通方法。另外,我不担心这是否是一个糟糕的设计。

非常感谢您耐心阅读本文。

卡皮尔。

【问题讨论】:

这不是自己工作的吗,只需在某些标头中声明 int foo() 吗? 【参考方案1】:

只要 A.dll 导出一个函数,该函数将可供任何应用程序使用(就像 B.dll 使用它一样)。 C.dll 也将能够从 A.dll 导入导出的函数。此外,您可能会采用所谓的“导出转发”(参见URL)机制,该机制使您能够从 B.dll 导出函数并在 A.dll 中实现这些(如 \system32\sfc.dll 导出的函数被转发到\system32\sfc_os.dll)

【讨论】:

以上是关于我们可以从 dll 中导入和导出函数吗的主要内容,如果未能解决你的问题,请参考以下文章

在 cassandra 中导入和导出模式

是否可以从将引用作为参数的 rust dll 导出函数

在反应中导入和导出模块

为啥有的dll里没有导出函数?

使用 def 文件从可执行文件中导出函数

MFC Dll 导出函数