私の理解では、DLL の境界を越えて stl コンテナー ( などstd::string
) を取得または返す関数を公開すると、2 つのバイナリ内のコンテナーの STL 実装の違いにより問題が発生する可能性があります。しかし、次のようなクラスをエクスポートしても安全ですか:
class Customer
{
public:
wchar_t * getName() const;
private:
wstring mName;
};
ある種のハックがなければ、mName は実行可能ファイルで使用できないため、mName でメソッドを実行することも、このオブジェクトを構築/破棄することもできません。
私の直感は「これはやらないでください、安全ではありません」ですが、正当な理由がわかりません。