独自のアプリケーション用のプラグインを作成しています。プラグインは後でアプリによって読み込まれる 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<...> 実装の違いとして理解しました。私は正しいですか?