从dll中导出C ++函数而无需外部“ C”

石田

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

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

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

使用extern“ C”不允许在函数签名中使用C ++类(在这种情况下为unique_ptr类模板)。

我知道,如果不使用extern“ C”,它将以错误的名称导出函数(通过__declspec(dllexport))。

客户端在调用getProcAddress时将不知道错误的名称,那么客户端将如何调用此函数?

有没有办法导出这种功能?

杂项

是的,这是老式的方式。按名称查找功能是“现代”方式(尽管它早于Windows 95)。旧的方法是按顺序查找它们

您需要提供一个模块定义文件EXPORTS以给您的功能编号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在C / C ++ DLL中导出MSVS 2013中的函数以供Mozilla js-ctypes使用

C#导出函数dll

将树结构数据存储到 C 中的数组中,而无需在函数外部声明该数组

在C ++中链接结构和函数而无需头文件

使用CMake时如何在Emscripten中导出C函数

C ++使用其他命名空间中的符号,而无需外部访问它们

从C#WPF应用发送电子邮件,而无需外部SMTP

是否可以在DLL中导出具有C链接的C ++成员方法?

使用结构类型参数调用c ++ dll的导出函数的powershell

使用全局变量和辅助函数添加c#文件,而无需添加网页

如何在C ++中将成员函数注册到lua而无需lua绑定

如何从Visual Studio 2017社区版C ++项目中导出DLL?

C ++:是否可以在编译之前将函数指针追溯到原始函数而无需查看函数名称?

C DLL 函数得到了 char* 参数,我想在 C# 项目中导入

c函数中导出的环境变量是否在父shell中可用?

我如何编译使用外部依赖项的C#库,而无需将其包含在库中?

在C#中导入C ++ Dll

在`/ bin / bash -c`中导出变量

在C中导出任意符号

从DLL作为C导出C ++函数时,调试和发布之间的区别

从C#调用的C ++ DLL导出函数返回字符串

如何导出C#dll方法/函数以在C ++中使用它

Android-在x86汇编器中调用C函数而无需重新分配文本

有没有一种方法可以解决yB = c而无需计算正确的逆函数?

反转字符串中的单词,而无需使用C#中的内置函数(如split和substring)

使用_stdcall将更改dll中导出函数的名称

DLL 从静态链接库中导出函数符号

如何在C#中导入DLL

DLL将抽象基类导出为成员函数的参数-C ++