我正在为专有应用程序创建插件。该插件是一个 DLL,稍后由应用程序加载,应用程序调用此 DLL 中定义的函数。
该应用程序似乎是使用 TDM-GCC 4.5 编译的。因此,如果我使用 TDM-GCC 4.5 编译插件,一切都会按预期工作。如果我使用 TDM-GCC 4.7 编译插件,它会在应用程序和插件中定义的向量之间的向量分配上开始崩溃。
插件中的代码:
vector<MyType*>* my_items;
void init(vector<MyType*>* items) {
my_items = items
}
因此应用程序加载插件 DLL 并调用 init(...) 方法,为插件提供向量。
我对 C++ 很陌生,所以我将其理解为 GCC 4.7 和 4.5 之间的 vector<...> 实现的差异。我对吗?