【发布时间】:2015-02-20 06:14:46
【问题描述】:
我用 DLL(或 .so,它是跨平台的)编写了一个模块化系统。这些单独的插件必须挂接到主系统的对象中。
例如 您在一个对象中有一个字符串向量,所有者是主要应用程序。现在有几个(显式加载的)插件必须访问该向量。
这些插件还需要一个基类,一种与主系统挂钩的 API。
我尝试将所有头文件都包含在 DLL 中,但这样做有两个问题:我每次构建插件时都包含 API。 第二个是:对于静态方法,我需要一个cpp文件,但是他没有使用主应用程序中的cpp文件,而是他自己的。这会导致该共享向量出现问题...(因为现在有多个向量,一个主向量,每个插件一个)
有什么想法吗?
【问题讨论】:
-
You have a vector of strings in one object, the owner is the main application. Now several (explicit loaded) plugins must access that vector.如果我使用与主 DLL 不同的编译器或不同的编译器选项构建插件,则程序在访问此向量时可能会崩溃。