c++ - 从 DLL 动态导入 C++ 类

标签 c++ windows dll import

从 DLL 导入 C++ 类的正确方法是什么?我们正在使用 Visual C++。

有 dllexport/exports.def+LoadLibrary+GetProcAddress 三重奏,但它不适用于 C++ 类,只能用于 C 函数。这是由于 C++ 名称修改造成的吗?我该如何完成这项工作?

最佳答案

您需要添加以下内容:

extern "C"
{
...
}

避免函数损坏。

您可以考虑编写两个简单的 C 函数:

SomeClass* CreateObjectInstace()
{
    return new SomeClass();
}

void ReleaseObject(SomeClass* someClass)
{
   delete someClass;
}

通过仅使用这些功能,您可以在之后添加/更改对象创建/删除的功能。这有时被称为工厂。

关于c++ - 从 DLL 动态导入 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/110833/

相关文章:

c++ - 在函数/类声明附近编写 C++ 单元测试

windows - 使用 Qt 的 ListView 组?

c# - 消除运行连续 exe 文件的闪烁

c++ - MASM 修复 DLL 中的 64 位截断

windows - 链接到 User32.dll 时出现链接错误 2001

c++ - 如何使用 shared_ptr 从外部提供模拟对象?

c++ - 创建新对象会破坏 C++ 中具有不同名称的旧对象

C++ 使用 "friend"

java - CardLayout 在 Windows 上无法正确呈现

c++ - 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变量