gpt4 book ai didi

c++ - 具有 C 链接的函数能够返回类类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:55 27 4
gpt4 key购买 nike

我在一个具有 C 链接的 dll 中观察到一个函数。此函数返回类类型。我不确定这是如何实现的,因为 C 不理解类。
我自己编写了一个示例 dll 和程序,注意到 VC++ 编译器显示了一个警告,但不会阻止你。程序能够获取此函数的GetProcAddress 并调用它来接收返回的对象。类定义可供程序使用。
此外,如果我编写一个带有 C 链接的函数,该函数返回一个甚至不导出此类的类类型,则编译器不会发出任何警告。程序可以使用 dll 中的此函数,前提是类定义对其可用。
关于这是如何工作的任何想法?这种行为是否特定于编译器/平台?

最佳答案

您误解了 extern "C" 的行为。

它只会通过防止 name mangling 影响目标文件中函数的名称 .它不会使函数既不是“更多 C”也不是“更少 C++”。 extern "C" 添加到 C++ 函数的唯一附加限制是它不能被重载。

关于c++ - 具有 C 链接的函数能够返回类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com