gpt4 book ai didi

c++ - 在没有 extern "C"的情况下从 dll 导出 C++ 函数

转载 作者:太空狗 更新时间:2023-10-29 21:31:29 24 4
gpt4 key购买 nike

目标:应用程序应该能够使用 LoadLibrary 动态加载 dll 并使用 GetProcAddress 调用其导出的函数。

我的 dll 类有一个返回类类型的 unique_ptr 的函数。

我想导出此函数,以便应用程序可以在成功加载 dll 后使用 getProcAddress 调用此函数。

使用 extern "C"将不允许在函数签名中使用 C++ 类(在本例中为 unique_ptr 类模板)。

我知道,如果不使用 extern "C",它会导出带有损坏名称的函数(通过 __declspec(dllexport) )。

客户端在调用 getProcAddress 的过程中并不知道经过修饰的名称,那么客户端将如何调用此函数?

有没有办法导出这样的函数?

最佳答案

是的,老式的方式。按名称查找函数是“现代”方式(尽管它早于 Windows 95)。老方法是查找它们by ordinal .

您需要提供 module definition file使用 EXPORTS 为您的函数编号。

关于c++ - 在没有 extern "C"的情况下从 dll 导出 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57968865/

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