任何在 Windows 上使用过 DLL 的人都会告诉您,将new
一个对象放在 DLL 边界的一侧然后放在另一侧是一个坏主意delete
。通常,使用带有 DLL 的工厂方法来避免这种情况,以便执行新/删除的目标代码出现在同一个目标文件中。
今天,我正在设计一个新接口,我想从std::move
一个std::vector<std::wstring>
对象到另一个对象,其中对象是在不同的 DLL 中创建的。当我想到这可能意味着delete
现在可能出现在与 did 不同的对象代码中时,我已经准备好这样做了new
,因为不同的对象现在拥有底层指针。
任何人都可以确认是否是这种情况?