相关疑难解决方法(0)

在dll-interfaces中使用shared_ptr

我的dll中有一个抽象类.

class IBase {
  protected:
       virtual ~IBase() = 0;
  public:
       virtual void f() = 0;
};
Run Code Online (Sandbox Code Playgroud)

我想进入IBase加载DLL的exe文件.第一种方法是创建以下功能

IBase * CreateInterface();
Run Code Online (Sandbox Code Playgroud)

并添加虚拟函数Release()IBase.

第二种方法是创建另一个功能

boost::shared_ptr<IBase> CreateInterface();
Run Code Online (Sandbox Code Playgroud)

并且不需要任何Release()功能.

问题.

1)在第二种情况下,在dll(而不是在exe文件中)中调用析构函数和内存释放是否正确?

2)如果使用不同的编译器(或不同的设置)编译exe-file和dll ,第二种情况是否能正常工作.

c++ dll boost abstract-class shared-ptr

23
推荐指数
2
解决办法
1万
查看次数

标签 统计

abstract-class ×1

boost ×1

c++ ×1

dll ×1

shared-ptr ×1